背景:项目前端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 }
然后交给前端在每个ajax上加上上面的方法,如下
1 $.ajax({ 2 url: _url, 3 type: "post", 4 async: false, 5 data: {}, 6 success: function (data) { 7 }, 8 error: onAjaxError 9 });
所有的ajax大概有两千多个,每个都有复制 error: onAjaxError 这一行代码,很繁琐,前端还拿出笔记本记录已经在哪些模块加了。我和前端负责人说了可以考虑全局处理,也许是表达不清楚被怼了一顿,只能自己处理了。在母版页(_Layout.cshtml)加了下面代码就可以了,不用前端手动复制两千个代码了
1 $.ajaxSetup({ 2 error: onAjaxError 3 })
原文:https://www.cnblogs.com/LiuNew/p/10581883.html