首页 文章

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

提问于
浏览
0

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

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

3 回答

  • 3

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

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

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

    注意:这可能会在以后更改为jQuery.ajax.httpSuccess

  • 2

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

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

    您可以轻松检索它:

    $.ajax({
        // your options
        success: function(data, xhr) {
          alert(xhr.status);
        }
    });
    

相关问题