zoukankan      html  css  js  c++  java
  • 创建axios拦截器

      上一篇说axios并发的时候有提到 axios的请求统一管理是为了创建拦截器

           具体说一下拦截器的创建

            import Vue from 'vue';

            import axios from 'axios';    //  引入axios 

            import { Message } from 'element-ui';  // 为了方便统一提示 引入element的Message

            创建axios实例   

      const request = axios.create({
          baseURL: myUrl , // api的base_url
          timeout: 30 * 60 * 1000 // request timeout
      })
      request.__proto__ = axios;
     
    /**
     * 创建请求拦截器
     */
    request.interceptors.request.use(
        config => {
    // 获取token 统一在请求的headers里面加入Access-Token
            const token = Vue.ls.get(ACCESS_TOKEN)
            if (token) {
                config.headers['Access-Token'= token;
            }
            /** 清楚get方法的缓存:尤其是IE浏览器缓存 */
            if (config.method.toLocaleUpperCase() === 'GET') {
                if (!config.params) config.params = {};
                config.params['sendleTime'= new Date().getTime();
            }
            return config;
        },
        error => {
            Message({
                message: '客户端请求错误: ' + error.message,
                type: 'error',
                duration: 3 * 1000
            });
            return Promise.reject(error)
        }
    )
     
    /**
     * 创建响应拦截器
     */
    request.interceptors.response.use(
        response => {
            const res = response.data;
            const code = res.status,
            if (code !== 200) {//状态码 !=200时,统一处理异常
                return Promise.reject(res.msg);
            }else {
                return response.data;
            }
        },
        error => {
            let errMsg = "请求发生错误"
            Message({
                message: errMsg,
                type: 'error',
                duration: 3 * 1000
            })
            return Promise.reject(error)
        }
    )
     
  • 相关阅读:
    select下拉的value和option内值得获取
    express模块下GET和POST获取前台数据
    Node.js---fs模块
    Node.js---MySQL的增删改查
    Node.js--mysql的应用
    Node.js-router(将大服务拆分成一个个小服务)
    22
    窗口切换
    IO
    第一次实训作业
  • 原文地址:https://www.cnblogs.com/langzianan/p/11882022.html
Copyright © 2011-2022 走看看