我想检测AJAX调用中的401错误并重定向到login.html。但我最终写了很多像
这样的代码if (xhr.status === 401) {
location.assign('/login.html');
}
在error
回调中。
我的问题是,有没有办法(最好的方法?)统一处理它们?我可以在所有Ajax调用中注入一些代码吗?
答案 0 :(得分:4)
您可以使用ajaxError()
。当ajax错误完成时会触发此事件。然后你可以检查这样的状态,
$(document).ajaxError(function (event, jqxhr, settings, exception) {
if (jqxhr.status == 401) {
location.assign('/login.html');
}
});
答案 1 :(得分:0)
function myAJax(sURL,fnSuccess,fnError) {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (xhttp.readyState == 4) {
if(xhttp.status == 200){
fnSuccess(xhttp.responseText);
}else{
fnError('Http Error',xhttp)
}
}
}
xhttp.open("GET", "ajax_info.txt", true);
xhttp.send();
}
myAJax('server/url',function(data){
//success code here
},function(){
//error code here
});