2

我们如何进行.getJSON function()检测500 Internal Server error。我尝试添加 .error(),.complete(status)函数来检查返回状态,但它们都不起作用。看起来 jQuery 不承认这个错误。

4

2 回答 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 回答