嗨,我是一个问题,似乎post没有返回对Jquery的任何回复,有人可以指出我的错误吗? 我的Html
<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 misskids
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();
}
}
}
}
}
我只想将值返回给Return Info,但似乎不起作用。有人可以指出我的错过吗?
由于
答案 0 :(得分:0)
您可能在回复中收到错误消息。您与$.post()
一起使用的功能仅响应成功。
尝试添加.error()
和.complete()
的功能:
$.post(...)
.error(function(){...})
.complete(function(){...});
答案 1 :(得分:0)
您的响应是Hello
,这不是json所以当jQuery尝试解析它时会出错,因此成功回调永远不会触发。为了避免错误,json会对您的响应进行编码。
答案 2 :(得分:0)
我想,您在以下行中只忘记了分号:
rtnObj = response.Data
问候,
答案 3 :(得分:0)
替代答案(对Musa's)并且基于仅在您的代码上方:
您的“处理程序”返回string
,而不是JSON
:
将$.post
的最后一个参数更改为text
(因为这是您的ds_handle.aspx
返回的内容)。这应该使您的alert
工作。
但是,rtnObj
将为undefined
,因为您的返回数据response
不是JSON(没有response.Data
,返回值为{{1}所以基于上面代码的仅,返回一个字符串,string: Hello