import store from "@/store"; import { getRefreshToken, getToken } from "@/utils/auth"; import axios from "axios"; import { Message } from "element-ui"; // create an axios instance const service = axios.create({ baseURL: process.env.NODE_ENV === "development" ? window.appConfig.baseUrlOffLine : window.appConfig.baseUrlOnLine, // process.env.VUE_APP_BASE_API, // url = base url + request url // baseURL: process.env.VUE_APP_BASE_API, // url = base url + request url // withCredentials: true, // send cookies when cross-domain requests timeout: 5000, // request timeout }); // request interceptor service.interceptors.request.use( (config) => { // do something before request is sent // console.log(config); // if (config.url.indexOf("/user/") > -1) { // config.baseURL = process.env.VUE_APP_BASE_API; // } // console.log(store.getters.token) if (store.getters.token) { config.headers["Authorization"] = "Bearer " + getToken(); config.headers["x-accesstoken"] = getRefreshToken(); var lang = localStorage.getItem("lang"); var language = "zh"; if (lang === "zh") { language = "zh-CN"; } else if (lang === "en") { language = "en-US"; } config.headers["Accept-Language"] = language; } return config; }, (error) => { // do something with request error console.log(error); // for debug return Promise.reject(error); } ); // response interceptor service.interceptors.response.use( (response) => { const res = response.data; if (res.code !== "Success") { if (res.msg === "" || res.msg === null || res.msg === undefined) { return; } Message({ message: res.msg || "Error", type: "error", duration: 5 * 1000, }); return Promise.reject(new Error(res.msg || "Error")); } else { return res; } }, (error) => { // console.log(error.response) let errorMessage = "请求错误"; if (error.response) { if (error.response.data.code === "403") { Message({ message: "该用户没有权限", type: "error", duration: 5 * 1000, }); return; } if (error.response.data.code === "401") { Message({ message: "用户超时,请重新登录", type: "error", duration: 5 * 1000, }); store.dispatch("user/logout"); location.reload(); return; } errorMessage = `请求失败:${error.response.status} - ${error.response.data?.msg || error.response.statusText }`; // console.log(errorMessage); } else if (error.request) { errorMessage = "服务器未响应,请检查网络连接"; } else { errorMessage = error.message || "未知错误"; } Message({ message: errorMessage, type: "error", duration: 5 * 1000, }); return Promise.reject(error); } ); export default service;