import axios from "axios"; import myConfig from "@/assets/js/config"; import toolClass from "@/assets/js/toolClass"; import router from "@/router"; // 创建 axios 实例 const service = axios.create({ baseURL: myConfig.requestCtx, timeout: myConfig.requestTimeOut, // 请求超时时间 }); // 请求拦截器 service.interceptors.request.use( config => { let token = toolClass.getCookie(myConfig.tokenKey); if (token) config.headers["Authorization"] = `bearer ${token}`; return config; }, error => { // 发送失败 Promise.reject(error); } ); // 响应拦截器 service.interceptors.response.use( response => { // dataAxios 是 axios 返回数据中的 data const dataAxios = response.data; if (typeof dataAxios.data === "boolean") { return dataAxios.data; } if (response.config.responseType == "blob") { return dataAxios; } const { success } = dataAxios; if (dataAxios.currentDate) { sessionStorage.currentDate = new Date(dataAxios.currentDate).getTime(); } // 根据 code 进行判断 if (success) { return dataAxios.data ? dataAxios.data : dataAxios; } else { // 提示错误 console.log(dataAxios.msg); } }, error => { if (error.response && error.response.status == 401) { toolClass.delCookie(myConfig.tokenKey); localStorage.clear(); router.replace({ path: "/login", }); } else { if (error.response && error.response.data && error.response.data.error) { console.error(error.response.data.error.msg); } else { console.error("请求发生错误"); } } return Promise.reject(error); } ); export default service;