在使用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);
};
})();