Javascript 可以监听所有Ajax调用吗?

Javascript 可以监听所有Ajax调用吗?,javascript,ajax,http-status-code-401,Javascript,Ajax,Http Status Code 401,我需要的是在收到错误401(未经授权)响应时重定向到某个url。我的代码中有几个Ajax调用,所以我想知道是否有一种通用的方法来监听所有这些调用,并且只有当返回代码时才重定向到该url 我希望在所有页面中都包含这段代码,以便在收到它时重定向,而不必编辑代码中的所有AJAX调用 编辑:基本上其他答案不会解释确切的模式 只需这样做: <script> $(document).ajaxComplete(function(response, a){ if(a.stat

我需要的是在收到错误401(未经授权)响应时重定向到某个url。我的代码中有几个Ajax调用,所以我想知道是否有一种通用的方法来监听所有这些调用,并且只有当返回代码时才重定向到该url

我希望在所有页面中都包含这段代码,以便在收到它时重定向,而不必编辑代码中的所有AJAX调用

编辑:基本上其他答案不会解释确切的模式

只需这样做:

<script>
    $(document).ajaxComplete(function(response, a){
        if(a.status == 401){
            return window.location.href = '/whatever/url/you/want';
        }
    });
</script>

$(文档).ajaxComplete(函数(响应,a){
如果(a.status==401){
return window.location.href='/whatever/url/you/want';
}
});
提前谢谢你

试试这个:

$(document).ajaxStart(function () { 
  console.log('Request Initiated'); 
}); 
$(document).ajaxComplete(function () { 
  console.log('Request Complete'); 
});

这个答案为你的问题提供了最好的答案:

这段代码(根据上面的答案稍加修改)说明了如何从开始到结束拦截ajax调用:

(function() {
    var origOpen = XMLHttpRequest.prototype.open;
    XMLHttpRequest.prototype.open = function() {
        console.log('request started!');
        this.addEventListener('load', function() {
            console.log('request completed!');
            console.log("Server status code: ", this.status); 
            console.log("Ready state: ", this.readyState); 
            console.log("Server response:", this.responseText);
        });
        origOpen.apply(this, arguments);
    };
})();
什么是readyState:

可能重复的还有一个
statusCode
选项,用于
jQuery.ajax()
如何使用ajaxComplete获取状态代码?