import axios from 'axios' import Cookies from 'js-cookie' import router from '@/router' import qs from 'qs' import { clearLoginInfo } from '@/utils' import isPlainObject from 'lodash/isPlainObject' const http = axios.create({ baseURL: window.SITE_CONFIG['apiURL'], timeout: 1000 * 180, withCredentials: true }) /** * 请求拦截 */ http.interceptors.request.use(config => { config.headers['Accept-Language'] = Cookies.get('language') || 'zh-CN' config.headers['token'] = Cookies.get('token') || '' config.headers['Authorization'] = Cookies.get('token') || '' // 默认参数 var defaults = {} // 防止缓存,GET请求默认带_t参数 if (config.method === 'get') { config.params = { ...config.params, ...{ '_t': new Date().getTime() } } } if (isPlainObject(config.params)) { config.params = { ...defaults, ...config.params } } if (isPlainObject(config.data)) { config.data = { ...defaults, ...config.data } if (/^application\/x-www-form-urlencoded/.test(config.headers['content-type'])) { config.data = qs.stringify(config.data) } } return config }, error => { return Promise.reject(error) }) /** * 响应拦截 */ http.interceptors.response.use(response => { if (response.data.code === 401 || response.data.code === 10001 || response.data.code === 10005) { clearLoginInfo() localStorage.setItem('userType', 'work') let userType = localStorage.getItem("userType"); if (userType === 'work'){ router.replace({ name: 'loginWork' }) }else { router.replace({ name: 'login' }) } return Promise.reject(response.data.msg) } return response }, error => { console.error(error) return Promise.reject(error) }) // http.put = function (url, data, config) { // http.post(url, data, { // ...config, // headers: { // }; // "X-HTTP-Method-Override": "PUT", // }, // }); // }; // http.delete = function (url, config) { // http.post(url, config.data || {}, { // ...config, // headers: { // "X-HTTP-Method-Override": "DELETE", // }, // }); export default http