我遇到了jQuery ajax调用的返回值问题。我可以调试整个服务器端,我知道一切正常,返回值正确计算。我可以查看FireBug中的NET选项卡,看看响应是:
{ “d”:假}
但是当我测试ajax调用的Success函数中的值时,msg为NULL。为什么呢?
这是ajax电话:
function GetStateCertifiable(areaID) {
$.ajax({
url: "../WebServices/AoP.asmx/GetStateCertifiable",
data: '{"AreaID":"' + areaID + '"}',
dataType: 'json',
success: function (msg) {
alert(msg); // for debugging
if (msg)
$("#isCertified").slideDown("fast");
else
$("#isCertified").slideUp("fast");
},
error: function (msg) {
alert("An error occured. \nStatus: " + result.status
+ "\nStatus Text: " + result.statusText
+ "\nError Result: " + result);
},
complete: function () {
}
});
};
其他类似结构的客户端调用工作正常。这是一个同域请求。
答案 0 :(得分:0)
尝试将变量名称更改为msg以外的名称。我认为这可能是一个消息框或类似的东西。尝试
function GetStateCertifiable(areaID) {
$.ajax({
url: "../WebServices/AoP.asmx/GetStateCertifiable",
data: '{"AreaID":"' + areaID + '"}',
dataType: 'json',
success: function (result) {
alert(result); // for debugging
if (result)
$("#isCertified").slideDown("fast");
else
$("#isCertified").slideUp("fast");
},
error: function (result) {
alert("An error occured. \nStatus: " + result.status
+ "\nStatus Text: " + result.statusText
+ "\nError Result: " + result);
},
complete: function () {
}
});
};
答案 1 :(得分:-1)
事实证明问题是我的网络服务(../WebServices/AoP.asmx/GetStateCertifiable)返回了一个bool,并且从帖子回复中,我知道已经正确地发送回客户端。然而,Ajax并不喜欢这样。一旦我更改了Web服务以返回字符串“true”或“false”,一切正常。
jQuery ajax是否仅适用于字符串,还是我应该做些什么来准备msg对象以接收bool?