重寫jquery的ajax的error方法,可處理後臺的許可權驗證,登陸超時等狀態碼
阿新 • • 發佈:2019-02-19
在使用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); }; })();