2012-12-23 24 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);

相关问题