import axios from 'axios'; import router from '../router/index'; import $message from 'element-ui'; // 创建axios实例 const request = axios.create({ baseURL: '/suapi', timeout: 1000 * 100 }) // post请求添加请求头 request.defaults.headers.post["Content-Type"] = "application/x-www-form-urlencoded"; // 请求拦截器 request.interceptors.request.use((config) => { const token = sessionStorage.getItem("token") if (token) { config.headers.usertoken = token; } return config }) // 响应拦截器 request.interceptors.response.use((response) => { if (response.status === 200) { if(response.data?.statusCode === '00403') { $message.Message.warning("登陆超时,请重新登录!") router.replace({ path: "/login", query: { redirect: router.currentRoute.fullPath } }) } else { return Promise.resolve(response.data) } } else { return Promise.reject(response.data) } }, (error) => { const { response } = error if (response) { errorHandle(response) return Promise.reject(response.data) } else { $message.Message.error("网络连接超时,请检查网络...") } }); // 统一错误处理方法 const errorHandle = (response) => { switch (response.status) { case 400: $message.Message.warning("请求参数错误...") break; case 401: // 登陆后跳转回当前 router.replace({ path: "/login", query: { redirect: router.currentRoute.fullPath } }) break; case 403: $message.Message.warning("登陆超时,请重新登录...") router.replace({ path: "/login", query: { redirect: router.currentRoute.fullPath } }) break; case 404: $message.Message.error("请求不存在...") break; case 500: $message.Message.warning(response.data.msg || response.data.message) break; default: $message.Message.error("网络连接超时,请检查网络...") } } export default request;