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; } 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, }) } else if (code === 401) { message.error({ message: msg, maxCount: 1, }) Storage.remove(2, "userInfo") 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 401: 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}` } } else { if (JSON.stringify(error).includes('timeout')) { Vue.prototype.$message.error('服务器响应超时,请刷新当前页'); } error.message = '连接服务器失败' } Vue.prototype.$setLoading(false); message.error(error.message); return Promise.resolve(error.response) }) export default service