vue utils.js

206 阅读1分钟
import axios from "axios"
import router from "@/router/index"
import { message } from 'ant-design-vue';

const request = axios.create({
    baseURL: 'http://127.0.0.1:8399',
    timeout: 10000,
    headers: {'X-Custom-Header': 'foobar'}
});

// 添加请求拦截器
request.interceptors.request.use(function (config) {
    const token = localStorage.getItem('token')
  
    if(token) config.headers.Authorization = `Bearer ${token}`;
  
    // 在发送请求之前做些什么
    return config;
  }, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
  });
  
  
  request.interceptors.response.use(function (response) {
    // 对响应数据做点什么

    // console.log("##############################")
    // console.log(response)
    // console.log("##############################")
  
    const {data: {code, data, msg}} = response
    if(code== -401 || code == -99 || code== -1) {
      message.error(msg);
      localStorage.removeItem('token')
      router.push({name: 'Login'})
    }
  
    return response;
  }, function (error) {
    // 对响应错误做点什么
    return Promise.reject(error);
  });

export default request;