调试jqueryajax函数
JS代码:调试jqueryajax函数,jquery,ajax,error-handling,Jquery,Ajax,Error Handling,JS代码: $.ajax({ type: 'POST', url: 'http://localhost/MyServiceDir/Service.asmx/Foo', contentType: 'application/json; charset=utf-8', data: jsonData, success: function (msg) { alert("good");
$.ajax({
type: 'POST',
url: 'http://localhost/MyServiceDir/Service.asmx/Foo',
contentType: 'application/json; charset=utf-8',
data: jsonData,
success: function (msg) {
alert("good");
},
error: function (xhr, status) {
switch (status) {
case 404:
alert('File not found');
break;
case 500:
alert('Server error');
break;
case 0:
alert('Request aborted');
break;
default:
alert('Unknown error ' + status);
}
}
});
我得到“未知错误”。我怎样才能弄清这件事的真相?我想知道错误到底是什么。谢谢 检查
xhr.status
“status”参数只包括失败的原因——超时、错误等。。。要获取状态代码,需要检查响应对象:xhr.status
有关详细信息,请参阅
如果您得到的是“500内部服务器错误”,那么这就是您将从ajax获得的全部信息。您必须检查应用程序或服务器日志。这可能是语法错误或库错误或其他类似的错误。请在OneError事件中尝试:
alert(xhr.statusText)
编辑:
我认为你最好在Firefox上安装FireBug插件。这将允许您查看ajax调用(为此启用“控制台”选项卡)、响应和错误消息。希望你能以这种方式获得你需要的信息。这一直是我调试ajax调用的首选方法它确实给出了500(服务器错误)…但是有没有办法获得更具体的细节?或者它和我从$ajax获得的信息差不多吗?@gnomixa:你可以得到服务器发送的任何信息。查看
xhr.responseText
。谢谢,但这也太笼统了——“内部服务器错误”。我正在寻找一些更具信息性的东西,比如“传递的参数数量错误”…不确定这是否可能。编辑了我上面的答案…FireBug可能会帮助您解决FireBug的安装问题。它实际上不会安装在我的FF 8上