import axios from 'axios' import router from '../router' import { Message } from 'element-ui' import vue from 'vue' const instance = axios.create({ baseURL: process.env.VUE_APP_URL, timeout: 50000, // 不携带cookie withCredentials: true, headers: { 'Content-Type': 'application/json' } }) // 添加请求拦截器 instance.interceptors.request.use(function (config) { return config }, function (error) { Message.error('请求存在问题,请检查') return Promise.reject(error) }) // 添加响应拦截器 instance.interceptors.response.use(function (response) { if (response.data.code === 1) { return response } else if (response.data.code === 401) { Message.error('登录已过期,请重新登录') vue.prototype.$$router.push({ path: '/login' }) return Promise.reject(response.data) } else if (response.data.code === 403) { Message.error('权限不足,无法访问') return Promise.reject(response.data) } else { Message.error(response.data.message) return Promise.reject(response.data.message) } }, function (error) { console.log(error, '错误') // 处理http状态码 if (error.response.data) { error.message = error.response.data.msg } if (error.response.code === 401) { error.message = '登录已过期,请重新登录' vue.prototype.$$router.push({ path: '/login' }) } if (error.response.code === 403) { error.message = '权限不足' } Message.error(error.message) return Promise.reject(error) } ) export default instance