1. 程式人生 > >重寫jquery的ajax的error方法,可處理後臺的許可權驗證,登陸超時等狀態碼

重寫jquery的ajax的error方法,可處理後臺的許可權驗證,登陸超時等狀態碼

在使用ajax呼叫後臺時,如果出現後臺許可權檢驗不過,或者需要登入時,就需要在ajax的error方法裡做判斷,如果使用ajax的方法地方太多,一旦後臺新增一種新的狀態碼,就要在多處理地方進行更改,

下面是一個方法,直接擴充套件了ajax的error方法,在呼叫時,和普通的呼叫一模一樣,也不用再加校驗,一切校驗,可以只加在這個擴充套件裡

(function() {
    //備份jquery的ajax方法  
    var _ajax=$.ajax;  
      
    //重寫jquery的ajax方法  
    $.ajax=function(opt){  
        //備份opt中error和success方法  
        var fn = {  
            error:function(XMLHttpRequest, textStatus, errorThrown){},  
            success:function(data, textStatus){}  
        }  
        if(opt.error){  
            fn.error=opt.error;  
        }  
        if(opt.success){  
            fn.success=opt.success;  
        }  
          
        //擴充套件增強處理  
        var _opt = $.extend(opt,{  
            error:function(response, textStatus, errorThrown){  
                //錯誤方法增強處理  
            	//沒有登入
                 if(response.status==401){
                	 if(!isReLogin){
                		 isReLogin=true;
                		 alert("登陸超時,請重新登入!");
                		 window.top.location.href="/kpdp/login"
                	 }
                 }else{
                	 fn.error(XMLHttpRequest, textStatus, errorThrown);  
                 }
            },  
            success:function(data, textStatus){  
                //成功回撥方法增強處理  
                  
                fn.success(data, textStatus);  
            }  
        });  
        _ajax(_opt);  
    };
})();