XMLHttpRequest 拦截处理

14 篇文章 0 订阅

XMLHttpRequest 拦截包括两部分

  1. 请求(request)拦截
  2. 请求完(response)拦截

直接上代码

<script>
      class XMLHttp {
        request = function (param) {};
        response = function (param) {};
      }
      let http = new XMLHttp();
      
	// 初始化 拦截XMLHttpRequest
	function initXMLHttpRequest() {
        let open = XMLHttpRequest.prototype.open;
          XMLHttpRequest.prototype.open = function(...args){
            let send = this.send;
            let _this = this
            let post_data = []
            this.send = function (...data) {
              post_data = data;
              return send.apply(_this, data)
            }
            // 请求前拦截
            http.request(args)

            this.addEventListener('readystatechange', function () {
              if (this.readyState === 4) {
                let config = {
                  url: args[1],
                  status: this.status,
                  method: args[0],
                  data: post_data
                }
                // 请求后拦截
                http.response({config, response: this.response})
              }
            }, false)
            return open.apply(this, args);
          } 
      }
 
 	// 初始化页面
	(function () {
        // XMLHttpRequest 拦截
        http.request = function (param) {
        //   console.log(param, "---request");
        };
        http.response = function (res) { 
            console.log(res, "---response");
        }
        // 初始化 XMLHttpRequest
        initXMLHttpRequest();
        
        // 模拟数据请求 (此处写自己要使用的请求)
        // request();

      })();


 </script>
  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值