zoukankan      html  css  js  c++  java
  • 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就可以了。

  • 相关阅读:
    转 vue动画总结
    html常用字体
    GIT常用命令
    h5 编辑单选框的样式
    转载 配置vue项目
    npm audit fix 报错
    mysql驱动包
    vue仿移动端输入框
    vue过渡动画样式
    解读Scrapy框架
  • 原文地址:https://www.cnblogs.com/dingzhipeng/p/8483393.html
Copyright © 2011-2022 走看看