我们如何进行.getJSON function()
检测500 Internal Server error
。我尝试添加
.error()
,.complete(status)
函数来检查返回状态,但它们都不起作用。看起来 jQuery 不承认这个错误。
问问题
4746 次
2 回答
4
编辑
设置函数来捕获这样的错误
jQuery Ajax 错误处理函数
$(function() {
$.ajaxSetup({
error: function(jqXHR, exception) {
if (jqXHR.status === 0) {
alert('Not connect.\n Verify Network.');
} else if (jqXHR.status == 404) {
alert('Requested page not found. [404]');
} else if (jqXHR.status == 500) {
alert('Internal Server Error [500].');
} else if (exception === 'parsererror') {
alert('Requested JSON parse failed.');
} else if (exception === 'timeout') {
alert('Time out error.');
} else if (exception === 'abort') {
alert('Ajax request aborted.');
} else {
alert('Uncaught Error.\n' + jqXHR.responseText);
}
}
});
});
当你这样尝试时被调用
// jQuery AJAX Error Handler
$.ajax({
url: "test.php"
});
有关更多详细信息,请查看此帖子:jquery-ajax-error-handling-function
该$.getJSON
函数不会返回您想要的错误;改用$.ajax
:
$.ajax({
url: 'url',
dataType: 'json',
success: function( data ) {
alert( "SUCCESS: " + data );
},
error: function( data ) {
alert( "ERROR: " + data );
}
});
还可以尝试这样的错误功能以获取更多详细信息
error: function (request, status, error) {
alert(request.responseText);
}
于 2012-11-29T07:09:54.023 回答
0
如果你想使用$.getJSON()
不$.ajax()
$("#debug").ajaxError(function(event, xhr, opt, exception){
// do your things.
});
但是这个处理程序会捕获所有 ajax 错误。所以你需要处理正在运行的 ajax。如果不想显示#debug
,请display: none
在 css 中设置。
于 2012-11-29T07:16:29.520 回答