zoukankan      html  css  js  c++  java
  • axios拦截器的使用方法

    很多时候我们需要在发送请求和响应数据的时候做一些页面处理,比如在请求服务器之前先判断以下用户是登录(通过token判断),或者设置请求头header,或者在请求到数据之前页面显示loading等等,还有在响应到数据的之后做一些判断,例如服务器返回401登录状态失效,需要重新登录的时候,跳转到登录页,请求成功后关闭页面loading等,这个时候我们就可以用到axios拦截器来做这一系列的事情。

    axios拦截器分为请求拦截器响应拦截器两种

    请求拦截器

    axios.interceptors.request.use(config => {
        // 在发送请求之前做些什么,例如加入token
        .......
        return config; 
      }, function (error) {
        // 对请求错误做些什么
        return Promise.reject(error);
      });

    响应拦截器

    axios.interceptors.response.use(function (response) {
        // 在接收响应做些什么,例如跳转到登录页
        ......
        return response;
      }, function (error) {
        // 对响应错误做点什么
        return Promise.reject(error);
      });

    完整代码:

    export function request(config) {
      // 1、创建axios实例
      const instance = axios.create({
        baseURL: "http://106.54.54.237:8000/api/v1",
        timeout: 10000
      });
    
      // 2、axios的请求拦截器
      instance.interceptors.request.use(
        req => {
          Toast.loading({
            // loading的时候禁止点击
            forbidClick: true,
            message: "加载中..."
          });
          return req; //拦截完再发送出去
        },
        err => {
          return Promise.reject(err);
        }
      );
    
      // 3、axios的响应拦截器
      instance.interceptors.response.use(
        res => {
          // 保证最少500毫秒的加载时间
          setTimeout(() => {
            Toast.clear();
          }, 500);
          return res.data; //拦截完再返回数据
        },
        err => {
          return Promise.reject(err);
        }
      );
    
      //发送真正的请求
      return instance(config);
    }

     https://blog.csdn.net/weixin_39378691/article/details/83750056

    不积跬步无以至千里
  • 相关阅读:
    Linux操作系统的进程管理
    CentOS 7网络配置工具
    Python并发编程-线程
    Python并发编程-queue
    Python并发编程-并发解决方案概述
    图Graph
    计算机网络基础之IP地址详解
    计算机网络基础之TCP/IP 协议栈
    计算机网络基础之网络设备
    计算机网络基础之OSI参考模型
  • 原文地址:https://www.cnblogs.com/lyt0207/p/12018257.html
Copyright © 2011-2022 走看看