我在aspx页面中用ajax来请求页面,有个问题。就是我在后台输出数据的时候为什么一定要加上Response.End()的时候,异步对象才能获取到数据,如果不加这句话,就老是报错,说少了个";"分号。
前台页面1124-02-JQuery-getJson.aspx代码:
$(function () {
$("#btnLogin").click(function () {
$.getJSON("1124-02-JQuery-getJson.aspx?userName=" + $("#userName").val() + "&userPwd=" + $("#userPwd").val() + "&callback=?"+"&flag=1", function (data) {
alert("服务器返回的结果为:" + data);
$("#userName").val(data);
});
});
});
后台页面1124-02-JQuery-getJson.aspx.cs代码:
string userName = Request.QueryString["userName"];
string userPwd = Request.QueryString["userPwd"];
string flag=Request.QueryString["flag"];
if (!string.IsNullOrEmpty(flag))
{
if (userName == "linjie" && userPwd == "123")
{
string fun = (Request.QueryString["callback"]);
Response.Write(fun + "('登录成功!')");
Response.End();
}
}
注意看我后台页面加黑的那句话。也就是我必须要加上这句话,前台页面才能alert()到输出的数据,如果不加上加黑的这句Response.End()这句话,前台页面就会报错,说缺少分号";"
这个问题我有点迷糊呢。如果不加Response.End这句话,它不是在Response.Write输出数据后也输出html页面字符串吗,这个应该不受影响才对啊,我并没有输出要实行的javaScript代码字符啊
那是因为你后台请求的页面是aspx页面。如果不加 Response.End(); 的话。他的后面会添加html字符串。所以报这个错误。
是的,谢谢你啦。刚开始没注意着。