处理方法 在error做出错误动作之前先判断页面是否已经加载完毕就好了。。。真鸡儿完美
//拦截所有的ajax的get方式请求,并且,如果其中有校验错误信息,或者系统异常信息,则弹出并返回
$.ajaxSetup({
//请求方式,默认为get
type: “GET”,
//请求失败遇到异常触发
error:function(xhr,state,errorThrown){
//: 判断网页是否加载完成
document.onreadystatechange = function () {
if(document.readyState==“complete”) {
alertMsg(xhr);
}
}
}
})
//拦截所有的ajax的post方式请求,并且,如果其中有校验错误信息,或者系统异常信息,则弹出并返回
$.ajaxSetup({
//请求方式,默认为get
type: “POST”,
//请求成功后触发
// success: function(){
// alert(1);
// },
//请求失败遇到异常触发
error:function(xhr,state,errorThrown){
/判断页面是否加载完成/
document.onreadystatechange = function () {
if(document.readyState==“complete”) {
alertMsg(xhr);
}
}
}
//完成请求后触发。即在success或error触发后触发
// complete:function(xhr,state,errorThrown){
// alert(0);
// }
})
//判断异常信息,并弹出并返回
function alertMsg(xhr) {
//统一的异常信息
var errorAlert=“系统发生异常,请您稍后再试”;
//拦截到的校验未通过的信息,或者系统异常信息
console.log(xhr);
var errRes=xhr.responseText;
console.log(“errRes:”);
console.log(errRes);
if(errRes == null || errRes==undefined){
console.log(1);
alert(errorAlert);
return;
}
var errJSON;
try {
console.log(2);
errJSON=JSON.parse(errRes);//如果能转json格式,则是校验错误信息,否则是系统异常信息
} catch(err) {
console.log(3);
alert(errorAlert+":"+errRes);
return;
}
console.log(4);
if(errJSON ==null){
console.log(5);
console.log(errJSON);
alert(errorAlert);
return;
}
console.log(6);
//根据返回状态码,如果是1,则是校验信息错误
var status=errJSON.status;
if(1==status){
var errMsg=errJSON.errorMsg;//校验的错误信息
if(errMsg!=null){
alert(errMsg)
return;
}else{
alert(errorAlert);
return;
}
}else{
alert(errorAlert);
return;
}
}