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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值