import Vue from "vue"; import router from "@/router"; import axios from "axios"; import { message } from "ant-design-vue"; import Storage from "@/utils/js/Storage"; const service = axios.create({ baseURL: process.env.VUE_APP_API_BASE_URL, // timeout: 10000 }); service.interceptors.request.use( (config) => { Vue.prototype.$setLoading({ spinning: true, tip: "请稍等", }); config.data = JSON.stringify(config.data); config.headers = { "Content-Type": "application/json;charset=utf-8", }; const Authorization = JSON.parse(localStorage.getItem("Authorization")); if (Authorization) { config.headers.Authorization = Authorization; } console.log(">>>>>", config); return config; }, (error) => { Promise.reject(error); } ); service.interceptors.response.use( (response) => { Vue.prototype.$setLoading(false); if (response.data.code !== undefined && response.data.msg !== undefined) { let { code, msg } = response.data; if (code === -1) { message.error({ content: msg, maxCount: 1, duration: 1, }); } else if (code === 401) { message.error({ message: msg, maxCount: 1, duration: 1, }); Storage.clear(2); // Storage.remove(2, "siteId"); // Storage.remove(2, "Authorization"); router.push("/"); } } return response.data; }, (error) => { if (error && error.response) { switch (error.response.status) { case 400: error.message = "错误请求"; break; case 403: error.message = "拒绝访问"; break; case 404: error.message = "请求错误,未找到该资源"; break; case 405: error.message = "请求方法未允许"; break; case 408: error.message = "请求超时"; break; case 500: error.message = "服务器端出错"; break; case 501: error.message = "网络未实现"; break; case 502: error.message = "网络错误"; break; case 503: error.message = "服务不可用"; break; case 504: error.message = "网络超时"; break; case 505: error.message = "http版本不支持该请求"; break; default: error.message = `连接错误${error.response.status}`; } message.error(error.message); } else { if (JSON.stringify(error).includes("timeout")) { Vue.prototype.$message.error("服务器响应超时,请刷新当前页"); } error.message = "连接服务器失败"; } Vue.prototype.$setLoading(false); return Promise.resolve(error.response); } ); export default service;