ajax前端异常拦截,若ajax未执行完毕,页面刷新时ajax进入error问题

处理方法 在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;
}

}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值