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 * 900, withCredentials: true, }); /** * 请求拦截 */ http.interceptors.request.use( (config) => { config.headers["Accept-Language"] = localStorage.getItem("language") || "zh-CN"; config.headers["token"] = localStorage.getItem("token") || ""; config.headers["Authorization"] = localStorage.getItem("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) => { const code = [10007, 401, 10001, 10005]; if (code.includes(response.data.code)) { clearLoginInfo(); // localStorage.setItem('userType', 'work') // let userType = localStorage.getItem("userType"); // if (userType === 'work'){ // router.replace({ name: 'loginWork' }) // }else { // router.replace({ name: 'login' }) // } 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;