Javascript 可以监听所有Ajax调用吗?
我需要的是在收到错误401(未经授权)响应时重定向到某个url。我的代码中有几个Ajax调用,所以我想知道是否有一种通用的方法来监听所有这些调用,并且只有当返回代码时才重定向到该url 我希望在所有页面中都包含这段代码,以便在收到它时重定向,而不必编辑代码中的所有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
<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获取状态代码?