import axios from "axios"; import router from "../router"; import { Message } from 'element-ui'; 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 === 1998) { return response; } else { Message.error(response.data.msg); return Promise.reject(response.data.msg); } }, function (error) { // 处理http状态码 if(error.response.data) { error.message = error.response.data.msg; } if(error.response.status === 401) { error.message = "登录已过期,请重新登录"; // 删掉sessionStorage中过期token sessionStorage.clear(); router.push("/login"); } if(error.response.status === 403) { error.message = "权限不足"; } Message.error(error.message); return Promise.reject(error); }); export default instance;