使用jquery异步访问时,如何对全局异常进行拦截呢

首先来了解ajax请求$.ajaxSetUp方法的使用

$.ajaxSetup({
         //请求方式,默认为get
         type:
     //请求成功后触发
    success: function () {},
    //请求失败遇到异常触发
    error: function () {},
    //完成请求后触发。即在success或error触发后触发
    complete: function () {},
    },
  })
})
上面仅列出一部分属性,其它属性可以到这里去学习http://www.w3school.com.cn/jquery/ajax_ajax.asp


那当我们在项目中大量使用异步请求时,处理异常变显的很麻烦,要是能在全局对异常进行一下处理就太好了。这里我们可以利用$.ajaxSetup来设置AJAX请求的默认
参数选项。


$.ajaxSetup({
    type : 'POST',
    error : function(XMLHttpRequest, textStatus, errorThrown) {
        var showRequestText = function(aa){
            alert(XMLHttpRequest.responseText);
        };
        $.messager.progress('close');
        //$.messager.alert('错误', XMLHttpRequest.responseText);
        $.messager.alert('信息','<div><h1>非常抱歉,程序出了点错.</h1><p>我们已经发现了这个问题,'+
                '将会在很短的时间内解决它.</p> <p><input style="margin-left:100px;padding:2 2 3 30;"'+
                'type="button" value="开发者工具" id="btn_msg_ajax"/></p></div>','info');
        $('#btn_msg_ajax').on('click',function(){
            $.messager.alert('错误', '<div style="width:600px;height:300px;">'+ XMLHttpRequest.responseText+'</div>');
        });
    },
    complete:function(XMLHttpRequest,status){
      var res = XMLHttpRequest.responseText;
       if(res=="{sessionState:0}") {
              location.href = "../../index.html";
         }
       else if(res.indexOf("id=\"container\"")>0){
           top.location.href = "../../index.html";
       }
       }
});
这样设置可以对异步请求所产生的异常进行统一的处理,并且可以查看异常的具体细节

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值