import axios from "axios"; import { ElMessage, ElMessageBox } from "element-plus"; import { getToken, removeToken } from "./auth"; axios.defaults.headers['Content-Type']='application/json' const serveice = axios.create({ baseURL: import.meta.env.VITE_BASE_URL, timeout: 6000 }) serveice.interceptors.request.use(config=>{ const ACCESS_TOKEN = getToken() || '' if(ACCESS_TOKEN!==undefined && ACCESS_TOKEN!=='') { config.headers['Authorization']=ACCESS_TOKEN } return config },error=>{ Promise.reject(error) }) serveice.interceptors.response.use(response=>{ // const status = response.status || 200 //二进制数据直接返回 if(response.request.responseType === 'blob' || response.request.responseType === 'arraybuffer') { return response.data } // switch(status) { // case 401: // ElMessageBox.confirm('登录状态已过期,请重新登录','系统提示',{ // confirmButtonText: '重新登录', // cancelButtonText: '取消', // type: 'warning', // closeOnClickModal: false // }).then(()=>{ // removeToken() // window.location = '/login' // }) // return Promise.reject('会话已过期,请重新登录') // case 402: // break; // case 403: // ElMessage.warning('禁止访问') // break; // case 404: // ElMessage.warning('不存在的地址') // break; // case 405: // ElMessage.warning('传输格式错误,请检查') // break; // case 500: // ElMessage.error('系统未知错误') // // return response.data // break // } return response.data },error=>{ let response = error.response const status = response.status; switch(status) { case 401: ElMessageBox.confirm('登录状态已过期,请重新登录','系统提示',{ confirmButtonText: '重新登录', cancelButtonText: '取消', type: 'warning', closeOnClickModal: false, customClass:'message-id' }).then(()=>{ removeToken() window.location = '/login' }) return Promise.reject('会话已过期,请重新登录') // case 402: // break; // case 403: // ElMessage.warning('禁止访问') // removeToken() // window.location = '/forbidden' // break; case 404: ElMessage.warning('不存在的地址') break; case 405: ElMessage.warning('传输格式错误,请检查') break; case 500: if (response.data){ return response.data }else { ElMessage.error('系统未知错误') break; } } return Promise.reject(error) }) export default serveice