jquery AJAX 拦截器 success error

在和后端数据交互的时候有些时候会遇到一些有权限的接口,

后端没有设置Status Code,返回的是Status Code:200,jquery的ajax就会进入到success方法里。

需要每个接口手动判断,就会显得很繁琐,大量的代码冗余。

上一篇博客自己写了个钩子函数,这篇就做了应用,不会用的去我上篇博客看下。

下面这些代码就解决了这个问题:

<script src="http://www.melaolao.com/test/work/js/jquery-3.3.1.js"></script>
<script src="http://www.melaolao.com/test/work/js/hook.js"></script>
<script>


//先钩了 jquer的ajaxSetup,因为在调用 $.ajax()会执行一次$.ajaxSetup()
setHook($, "ajaxSetup", function () {
var settings=arguments[1];
if(settings){//判断是否是调用$.ajax()触发的jquer.ajaxSetup函数。 //settings是调用$.ajax()传的参数
//这里hook用到的函数 例子是 success ,error
if(settings.success){
//这里再钩了success方法
setHook(settings,'success',function () {
alert("hook success 成功");
})
}
if(settings.error){
setHook(settings,'error',function () {
alert("hook error 成功");
})
}
}
})


$.ajax({
url: "urlurlurlurl",
success: function () {
alert(111)
},
error:function (data) {
alert(222)
//先弹窗 “hook error 成功” 再弹窗222
}
})

</script>

上一篇博客自己写了个钩子函数,这篇就做了应用,不会用的去我上篇博客看下。

其实这并不是最推荐的方法 ,最简单的是后端把Status Code直接设置成错误代码 40X,这样jquery只需要全局配置 error就可以了。

原文地址:https://www.cnblogs.com/dingzhipeng/p/8483393.html