import axios from "axios"; // import URL from "../config/index"; import { Message } from "element-ui"; import allTits from "../assets/lan/tits.js"; // import router from "../router.js"; axios.defaults.timeout = 15000; axios.defaults.baseURL = URL.BASE_URL; //http request 拦截器 axios.interceptors.request.use( (config) => { const token = localStorage.getItem("spToken"); // config.data = JSON.stringify(config.data); // config.headers = { // 'Content-Type':'application/x-www-form-urlencoded' // } if (token) { if (config.method == "get") { config.params.token = token; } else if (config.data == "post") { config.params.token = token; } } return config; }, (error) => { return Promise.reject(error); } ); //http response 拦截器 axios.interceptors.response.use( (response) => { if (response.data.code != 0) { var localLan = "", lanTits = ""; //判断语言 if (localStorage.getItem("localLan")) { localLan = localStorage.getItem("localLan"); if (localLan == "en") { lanTits = "tits_en"; } else if (localLan == "zh-CN") { lanTits = "tits_zh-CN"; } else if (localLan == "cht") { lanTits = "tits_CN"; } else if (localLan == "ko") { lanTits = "tits_Korean"; } else if (localLan == "fr") { lanTits = "tits_fr"; } else if (localLan == "de") { lanTits = "tits_de"; } else if (localLan == "it") { lanTits = "tits_it"; } } //403 if (response.data.code == "403") { console.log('routerrouterrouterrouterrouterrouterrouterrouterrouterrouterrouter',router) let lang = localStorage.getItem('localLan') localStorage.clear() localStorage.removeItem("username"); localStorage.removeItem("spToken"); localStorage.removeItem("vuex"); localStorage.setItem('localLan', lang) // router.beforeEach((to, from, next) => { // //会在任意路由跳转前执行,next一定要记着执行,不然路由不能跳转了 // console.log('beforeEach') // console.log(to,from) // // // next() // }) // router.push("/login"); location.reload() } if (allTits[lanTits][response.data.msg]) { Message(allTits[lanTits][response.data.msg]); } else { Message(response.data.msg); } } return response; }, (error) => { return Promise.reject(error); } ); /** * 封装get方法 * @param url * @param data * @returns {Promise} */ export function fetch(url, params = {}) { return new Promise((resolve, reject) => { axios .get(url, { params: params, }) .then((response) => { resolve(response.data); }) .catch((err) => { reject(err); }); }); } /** * 封装post请求 * @param url * @param data * @returns {Promise} */ export function post(url, data = {}) { return new Promise((resolve, reject) => { axios.post(url, data).then( (response) => { resolve(response.data); }, (err) => { reject(err); } ); }); } /** * 封装patch请求 * @param url * @param data * @returns {Promise} */ export function patch(url, data = {}) { return new Promise((resolve, reject) => { axios.patch(url, data).then( (response) => { resolve(response.data); }, (err) => { reject(err); } ); }); } /** * 封装put请求 * @param url * @param data * @returns {Promise} */ export function put(url, data = {}) { return new Promise((resolve, reject) => { axios.put(url, data).then( (response) => { resolve(response.data); }, (err) => { reject(err); } ); }); } export default { fetch, patch, put, post };