Ajax全局处理错误

时间:2023-03-08 17:19:28
Ajax全局处理错误

背景:项目前端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
})