jQuery ajax - 在调用 statusCode() 回调时避免 error() 回调

标签 jquery ajax error-handling http-status-codes

我正在使用 jQuery.ajax() 连接到我的后端服务。我已经配置了一个 error() 处理程序和一个 statusCode() 处理程序。它们都工作正常,但是当我的 statusCode 处理程序被触发时,错误处理程序也会触发(错误处理程序实际上首先被触发)。我希望这种情况不要发生。我假设这是可能的,而无需破解错误处理程序代码?

我的代码看起来像这样:

$.ajax({
    ...
    error: function(...) { 
        // process a general type of error here
    },
    statusCode: {
        401: function() {
            // process a specific authentication failure
        }
    }                 
});

那么如何避免当 HTTP 状态代码为 401 时触发 error() 处理程序?

感谢您花时间阅读!

最佳答案

您可以轻松检查错误回调中的状态代码。第一个参数应该是 XMLHttpRequest (或 jqHXR 取决于您的 jQuery 版本)对象。相应地检查错误句柄的状态代码的“状态”属性。

例如

error: function(a, b, c){
  if(a.status != 401){
    // handle other errors except authentication

  }
}

关于jQuery ajax - 在调用 statusCode() 回调时避免 error() 回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9465067/

相关文章:

javascript - Jquery "select all"复选框

jquery - 无法使用 X-Editable/jQuery、Chrome 读取 JSON

ajax - 通过Ajax加载Google图表

c# - 暴露来自 `IdentityError` 类的消息是否可以?

javascript - 解决错误时对socket.write的 promise (nodejs)

javascript - Ace Editor - 在编辑器中添加超链接

javascript - 表单验证不起作用

javascript - 将 ajax 元素包装到 HTML 页面

ios - 当 String 不符合错误时抛出的函数命中 do catch block 时如何获得正确的错误?

jquery - Bootstrap 3 : Full Slider not working. Uncaught TypeError : $(. ..).carousel 不是函数