从jquery中的ajax请求获取错误响应

getting the error response from an ajax request in jquery

无论如何,我的web服务器都会向任何ajax请求返回json响应。 如果响应成功,它将返回状态代码为200的json。如果出现错误,它将返回状态代码为400或500的json。我需要获取该信息,即使请求 是400或500,因为json响应有错误消息,需要呈现给用户。

问题是如果状态代码不是200,jquery $ .ajax函数不允许您访问响应对象,对吗? 有没有办法做到这一点?


您可以覆盖内部使用的jQuery.httpSuccess方法来确定请求是否成功,例如:

1
jQuery.httpSuccess = function() { return true; }

这将使您的success处理程序在400/500范围内的状态代码上执行。

注意:稍后可能会更改为jQuery.ajax.httpSuccess


当然可以。 只有在调用成功时才会调用success函数,但在出现错误时调用error回调 - 包括200以外的HTTP状态。

1
$.ajax({..., error: function(XMLHttpRequest, textStatus, errorThrown) { ... } });


您可以轻松检索它:

1
2
3
4
5
6
$.ajax({
    // your options
    success: function(data, xhr) {
      alert(xhr.status);
    }
});