以下是我的JQuery AJAX方法:
function meFun() {
alert('enter');
$.ajax({
type: "POST",
url: "About.aspx/GetRes",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
// Do something interesting here.
alert(msg);
}
});
alert('end');
}
以下是我的按钮代码:
<input type="button" onclick="meFun();" value="Click me" id="btn" />
Folling是我在About.aspx中的功能
Public Function GetRes() As Boolean
Return True
End Function
成功调用meFun()
方法,但不调用GetRes()
,并且AJAX调用不会返回任何响应。
知道为什么吗?另外,请建议调试这些AJAX问题的好方法。
答案 0 :(得分:3)
首先,确保服务器端的GetMes函数具有WebMethod属性(这是在C#中,我不知道你是如何在VB中那样做的)并使GetRes成为静态(或者VB中的等价物)。
[WebMethod]
public static bool GetRes()
{
return true;
}
然后,将error
处理程序添加到您的jQuery ajax
调用中:
$.ajax({
type: "POST",
url: "About.aspx/GetRes",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
// Do something interesting here.
alert(msg);
},
error: function (data) {
}
});
alert('end');
编辑:要调试,在错误处理程序中设置断点并检查data
参数。所有的浏览器(好吧,我可以保证IE,Firefox(使用Firebug)和Chrome)都有很好的脚本调试器。如果发生错误,data
中会有一个属性,其名称目前无法解释,这将详细解释错误。
答案 1 :(得分:1)
当您的AJAX CALL期望JSON格式时,您将以STRING格式返回数据 因此,通过使用newtonsoft库或内置的asp.net jsonconversion机制,服务器端可以转换为JSON格式
如svajger所述,您必须将其声明为webmethod并且必须是静态的,返回类型是字符串首选
并且在成功处理程序中你必须通过解析json数据 JSON.parse方法