axios拦截器

118 阅读1分钟

拦截器

  • 拦截器: 在请求或响应被 then 或 catch 处理前拦截它们

请求拦截器:

  // 添加请求拦截器
    axios.interceptors.request.use(
      function (config) {
        // 在发送请求之前做些什么
        //(1)axios发请求  (2)进入请求拦截器  (3)请求发送服务器
        //显示loading
        return config// 本次请求配置信息
      },
      function (error) {
        // 对请求错误做些什么
        return Promise.reject(error)
      }
    )

响应拦截器:

    // 添加响应拦截器
    axios.interceptors.response.use(
      function (response) {
        // 对响应数据做点什么
        //隐藏loading
       //(1)服务器响应  (2)执行响应拦截   (3)执行axios的then方法
         return response//服务器响应数据
      },
      function (error) {
        // 对响应错误做点什么
        return Promise.reject(error)
      }
    )

移除拦截器

如果你想在稍后移除拦截器,可以这样:

const myInterceptor = axios.interceptors.request.use(function () {/*...*/}); 
axios.interceptors.request.eject(myInterceptor);

也可以为自定义 axios 实例添加拦截器

const instance = axios.create();

instance.interceptors.request.use(function () {/*...*/}); 

总结: 拦截器是个固定写法只可以增加,不可以改变和删除,一般情况是不会删除拦截器的