Ajax全局处理错误

背景:项目前端ajax请求很多都没有写error方法,所以用户体验很不好

新来的前端负责人发现这个问题,写了一个错误处理方法,如下

 1 //统一处理Ajax错误方法
 2 function onAjaxError(xhr, textStatus, error) {
 3     if (xhr.status == 200) { return; }
 4     if (textStatus === 'timeout') {
 5         alert('对不起,您访问的页面超时,请检查网络稍后重试');
 6     }
 7     else {
 8         if (xhr.responseText.toString().indexOf("/Authority/Login") > 0)
 9             top.window.location.href = baseURL + '/Authority/Login';
10         else {
11             alert('对不起,您访问的页面异常,请您与对应客服联系解决');
12         }
13     }
14 }
View Code

然后交给前端在每个ajax上加上上面的方法,如下

1 $.ajax({
2                 url: _url,
3                 type: "post",
4                 async: false,
5                 data: {},
6                 success: function (data) {
7                 },
8                 error: onAjaxError
9             });
View Code

所有的ajax大概有两千多个,每个都有复制 error: onAjaxError 这一行代码,很繁琐,在母版页(_Layout.cshtml)加了下面代码就可以了,不用前端手动复制两千个代码了

1 $.ajaxSetup({
2             error: onAjaxError
3         })
View Code
原文地址:https://www.cnblogs.com/LiuNew/p/10581883.html