import axios from 'axios' import { Message } from 'element-ui' import { getToken, removeToken } from '@/utils/auth' import constant from "@/api/constant"; // 是否显示重新登录 axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8' if (getToken()) { axios.defaults.headers['X-UC-AuthToken'] = getToken() } axios.defaults.headers['Accept-Language'] = 'en-US'; axios.defaults.headers["X-SYSTEM-ID"] = constant.systemId ? constant.systemId : "" axios.defaults.headers["X-SYSTEM-GROUP-ID"] = constant.systemGroupId ? constant.systemGroupId : "" // create an axios instance const service = axios.create({ // axios中请求配置有baseURL选项,表示请求URL公共部分 baseURL: process.env.VUE_APP_BASE_API, // 超时 // timeout: 100000 }) // request interceptor service.interceptors.request.use( config => { // do something before request is sent if (getToken()) { // let each request carry token // ['X-UC-AuthToken'] is a custom headers key // please modify it according to the actual situation config.headers['X-UC-AuthToken'] = getToken() } return config }, error => { // do something with request error console.log(error) // for debug return Promise.reject(error) } ) service.interceptors.response.use(response => { const result = response.data; if (result.resultStatus === 200) { if (result.success === true) { return result.data; } else { if (result.messageType === 'MESSAGE_WARN') { Message({ message: result.message, type: 'warning', duration: 5 * 1000 }) } else if (result.messageType === 'MESSAGE_ERROR') { Message({ message: result.message, type: 'error', duration: 5 * 1000 }) } return Promise.reject(`Request failed:${response.config.url}`) } } else if (result.resultStatus === 403) { Message({ message: "无权限访问", type: 'error', duration: 5 * 1000 }) return Promise.reject("无权限访问") } else if (result.resultStatus === 401) { removeToken(); // 清除浏览器全部临时缓存 window.location.href = '/'; // 去登录页 return Promise.reject('无效的会话,或者会话已过期,请重新登录。') } else { Message({ message: "服务器异常:" + result.message, type: 'error', duration: 5 * 1000 }) return Promise.reject(result.message) } }, (error => { console.log('err' + error) // for debug Message({ message: error.message, type: 'error', duration: 5 * 1000 }) return Promise.reject(error) })) service.interceptors.request.use( function (config) { // Do something before request is sent return config; }, function (error) { // Do something with request error return Promise.reject(error); } ); export default service