如何在jQuery中统一处理AJAX错误?

时间:2015-10-29 07:46:57

标签: javascript jquery ajax

我想检测AJAX调用中的401错误并重定向到login.html。但我最终写了很多像

这样的代码
if (xhr.status === 401) {
   location.assign('/login.html');
}

error回调中。

我的问题是,有没有办法(最好的方法?)统一处理它们?我可以在所有Ajax调用中注入一些代码吗?

2 个答案:

答案 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
 });