import axios from "axios"; import { ElMessage } from 'element-plus' axios.defaults.headers["Content-Type"] = "application/json;charset=utf-8"; const service = axios.create({ baseURL: import.meta.env.VITE_BASE_API_URL, timeout: 15000, }); /** * 自定义状态码处理 * @param {*} status 状态码 * @param {*} info 信息 */ const errorHandle = (status, info) => { switch (status) { case 400: console.log("语义有误"); break; case 401: console.log("服务器认证失败"); location.href = '/login'; break; case 403: console.log("服务器拒绝访问"); break; case 404: console.log("地址错误"); break; case 500: console.log("服务器遇到意外"); break; case 502: console.log("服务器无响应"); break; default: console.log("其他错误"); break; } ElMessage.error({ message: info.message || '系统错误,请稍后重试', grouping: true, }); }; // request拦截器 service.interceptors.request.use( (config) => { // const token = localStorage.getItem('authToken'); // if (token) { // config.headers['Authorization'] = `Bearer ${token}`; // } return config; }, (error) => { // 返回Promise.reject(error),这样会触发后续的错误处理器 Promise.reject(error); }, ); // response拦截器 service.interceptors.response.use( (response) => { if (response.status === 200 && response.data.code === 1){ return Promise.resolve(response.data); } else { errorHandle(response.data.code, response.data); return Promise.reject(response.data); } }, (error) => { const { response } = error; errorHandle(response.status, response); }, ); export default service;