背景:项目前端ajax请求很多都没有写error方法,所以用户体验很不好
新来的前端负责人发现这个问题,写了一个错误处理方法,如下
//统一处理Ajax错误方法
function onAjaxError(xhr, textStatus, error) {
if (xhr.status == 200) { return; }
if (textStatus === 'timeout') {
alert('对不起,您访问的页面超时,请检查网络稍后重试');
}
else {
if (xhr.responseText.toString().indexOf("/Authority/Login") > 0)
top.window.location.href = baseURL + '/Authority/Login';
else {
alert('对不起,您访问的页面异常,请您与对应客服联系解决');
}
}
}
然后交给前端在每个ajax上加上上面的方法,如下
$.ajax({
url: _url,
type: "post",
async: false,
data: {},
success: function (data) {
},
error: onAjaxError
});
所有的ajax大概有两千多个,每个都有复制 error: onAjaxError 这一行代码,很繁琐,在母版页(_Layout.cshtml)加了下面代码就可以了,不用前端手动复制两千个代码了
$.ajaxSetup({
error: onAjaxError
})