您的位置:首页 > Web前端 > JQuery

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

2013-11-27 14:49 435 查看
首先来了解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";
}
}
});
这样设置可以对异步请求所产生的异常进行统一的处理,并且可以查看异常的具体细节
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: