2012-12-23 60 views
1

嗨我是一個問題,似乎後沒有返回任何迴應的JQuery,有人可以指出我的錯誤? 我的HTMLJQuery響應似乎沒有任何回報

<head runat="server"> 
    <title>Untitle</title> 

    <script src="./script/jquery-1.8.3.min.js" type="text/javascript"></script> 
    <script src="./script/jquery.masonry.min.js" type="text/javascript"></script> 
    <script src="./script/missingkids.js" type="text/javascript"></script> 
</head> 

<body> 
    <form id="form1" runat="server" method="post"> 
     <div>Call to JS and return <br /> 
      <div id="retnTxt">Return Info</div> 
      <input type="button" id="btnCallJs" onclick="BtnCal()" value="CallJS" /> 
     </div> 

    </form> 
</body> 
</html> 

我的JS missingkids

var rtnObj = null; 
var ds_handler = "ds_handle.aspx"; 
function BtnCal() 
{ 
    //alert("asdf"); 
    $.post(ds_handler, 
     {"Action":"MainAct", "SubAction":"SubAct"}, 
      function(response) 
      { 
       alert(response); //no alert running here?? 
       rtnObj = response.Data 

       $("#retnTxt").html(rtnObj); 
      }, "json"); 

} 

我把手aspx.cs

public partial class MissingKids_handle : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!IsPostBack) 
     { 

      if (Request.Form["Action"] == "MainAct") 
      { 
       if (Request.Form["SubAction"] == "SubAct") 
       { 

        string ans = "Hello"; 
        Response.Clear(); 
        Response.Write(ans); 
        Response.End(); 
       } 
      } 
     } 
    } 
} 

我只是想回到返回信息的價值,但似乎不起作用。有人能指出我的小姐嗎?

謝謝

+0

請確認您的服務器響應是否正確檢查服務器是否響應響應 –

+0

您是否檢查您的處理程序是否收到請求?(如在調試中 - 也檢查異常)+1包括所有相關代碼。 –

+0

我有ch eck的處理程序,它有 – user994985

回答

0

您可能會收到錯誤的響應。您與$.post()一起使用的功能僅對成功做出響應。爲.error().complete()以及

嘗試增加功能:

$.post(...) 
.error(function(){...}) 
.complete(function(){...}); 
0

你的反應是Hello這不是JSON所以有一個錯誤,當jQuery的嘗試分析它所以成功回調永遠不會觸發。爲了避免錯誤json編碼你的迴應。

+0

所以你的意思是我必須在處理程序編碼響應? – user994985

+0

@ user994985嘗試'string ans =「\」Hello \「」;' – Musa

0

我認爲,你只有忘記在下面的行分號:

rtnObj = response.Data 

問候,

+0

感謝您指出分號。但是,它仍然沒有回報。函數(響應)後的警報沒有提示。然而,處理程序,如果檢查它有輸出,而我將request.from更改爲request.querystring並使用URL運行處理程序。爲什麼?? – user994985

0

備選答案(穆薩的)和基於只在上面的代碼

您的「處理程序」正在返回string,而不是JSON

  1. $.post的最後一個參數更改爲text(因爲這就是您的ds_handle.aspx返回的值)。這應該使你的alert工作。

  2. 然而,rtnObjundefined,因爲你的回報數據response不是JSON(沒有response.Data,返回的值是一個string: Hello。因此,基於只在你上面的代碼,它返回一個字符串$("#retnTxt").html(response);

相關問題