Ecology中拦截jquery.ajax请求接口后的数据

功能:获取调用接口之后的数据在进行返回参数重写
首先ecology中一般直接看不到源码的,为什么知道是jquery.ajax请求呢,需要用到开发者工具
在这里插入图片描述

在这里插入图片描述
点开这里之后就能知道调用接口具体走的是什么逻辑然后返回值又做了哪些操作
在这里插入图片描述
一般来说,文件有前置加载和后置加载,就拿我这来说,我的就是前置加载一般是在/cloudstore/dev/init.js中,可以直接在文件里面搜索。但是搜索就不一样了,前后置文件都可以搜。然后就是用ecode开发工具开发编写js文件了,注意之前用的谷歌有问题,在ecode上无法创建文件,但是电脑自带edge就没问题,上重点:
一般来说拦截ajax请求可以用

$( document ).ajaxSuccess(function( event, request, settings ) {

console.log(request.status);

});

但是这个方法,在请求时是没有请求后的数据的,感觉像是请求前的处理,不像下面的方法可以获取请求后的数据,然后对返回数据进行操作

  $.ajaxPrefilter(function (options, originalOptions, jqXHR) {
    var origSuccess = options.success;
    options.success = function (response) {
      if (origSuccess) {
        origSuccess.call(this, response); // 调用原始的success回调
      }
    };
 });

完整代码

let enable = true;
let isRun = false; //控制执行次数
const runScript = () => { //代码块钩子,类似放在代码块中或者jquery.ready
  //可操作WfForm,以及部分表单dom hiden、ReactDOM.render
  isRun = true; //确保只执行一次
  $.ajaxPrefilter(function (options, originalOptions, jqXHR) {
    var origSuccess = options.success;
    options.success = function (response) {
      // 在这里根据url啥的进行数据修改或检查响应数据
    	===============================
      if (origSuccess) {
        origSuccess.call(this, response); // 调用原始的success回调
      }
    };
  });
}
//利用组件复写此处是所有的头部适用所有
ecodeSDK.overwritePropsFnQueueMapSet('WeaReqTop', {
  fn: (newProps) => {
  	//原始流程操作,组件加载,等等
  	===================
    if (isRun) return; //执行过一次就不执行
    runScript(); //执行代码块
  }
});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值