一种拦截AJAX数据的方法

首先给大家分享一个巨牛巨牛的人工智能教程,是我无意中发现的。教程不仅零基础,通俗易懂,而且非常风趣幽默,还时不时有内涵段子,像看小说一样,哈哈~我正在学习中,觉得太牛了,所以分享给大家!点这里可以跳转到教程

                    

一个实际运营中的产品,突然遇到了这样的展示需求:

在前端拦截所有的AJAX请求,将其中的XXX电力局字样全部改为XXX水利局字样。
  
  
  • 1

首先想到的是利用jQuery的全局AJAX方法,但检索了一遍.ajaxComplete .ajaxComplete、.ajaxSuccess等全局方法,发现所有的全局方法都只能对AJAX数据进行只读操作。难道真的没有办法了吗?

重新复写$.ajax方法是否可行?应该可以达到目的,但代码量可能会比较大,后续的jQuery版本更新也是一件麻烦的事情。

那对$.ajax的success配置创建代理是否可行?这样代价最小,测试代码如下:

var ajax = $.ajax;//  修改ajax方法的默认实现$.ajax = function(options) {    var success = options.success;    //  对用户配置的success方法进行代理    function ns(datas) {        var args = arguments;        //  对数据进行处理        var str = JSON.stringify(datas);        var rstr = str.replace(/XXX电力局/g, 'XXX水利局');        //  替换回调函数的数据参数        args[0] = JSON.parse(rstr);        //  这里需要判断用户传入的上下文,具体实现略        return success.apply(this, args);    }    //  代理嵌入调用    options.success = ns;    return ajax(options);}//  jQuery的所有ajax方法都基于$.ajax方法$.getJSON('abc.json', function(data) {    //  测试数据是否已变更    alert(data.name);})
  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

经过测试,完全能够达到演示效果,区区几行代码,就替代了后端繁琐的数据更新工作。

           

浏览人工智能教程

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值