1. 拦截器

拦截器设置可以我们在发出 request 或接到 response 之前做一些事情,例如改变 response数据格式,或是根据不同 request添加不同的config 等。请求拦截器的即在请求发送前进行的操作,如设置是否需要token;响应拦截器的即接收到响应后进行操作,如通过状态设置响应失败跳转

PS:若对Ajax基本使用还不熟悉推荐看看博客AJAX详解

2.原生AJAX实现拦截器

需要改变send方法 XMLHttpRequest.prototype.send在其原型中重新定义send函数

    const intercept = (method, url, requestCallback, responseCallback) => {
        let xhr = new XMLHttpRequest();
        //修改原型open和send方法创建请求响应拦截器
        let open = XMLHttpRequest.prototype.open;
        let send = XMLHttpRequest.prototype.send;
        XMLHttpRequest.prototype.open = function () {
          requestCallback();
          open.call(this, method, url);
        };

        XMLHttpRequest.prototype.send = function () {
          //当Ajax状态码改变时调用
          this.addEventListener('readystatechange', function () {
            //请求成功时调用,也可设置别的状态码时调用的函数
            if (this.readyState === 4 && this.status === 200) {
              //响应拦截器,返回有用的data
              let response = JSON.parse(this.responseText);
              responseCallback(response.data);
      

注意,本文迁移

本文具体内容迁移到新网页,请读者移步查看,后续所有文章更新也将在新网站
Ajax拦截器的实现

3.使用JQ的ajax实现拦截器

原文地址:https://blog.csdn.net/qq_45881272/article/details/125026045

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_27006.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注