import axios from "axios" import Cookies from "js-cookie" import NProgress from "nprogress" import { Message } from "element-ui" import config from "../config/index"; // 路径配置 // axios默认配置 axios.defaults.timeout = 1000000000 // 超时时间 axios.defaults.baseURL = config.baseURL // http request 拦截器 axios.interceptors.request.use(config => { NProgress.start() config.headers["Content-Type"] = "application/json;charset=UTF-8" const source = axios.CancelToken.source(); store.commit('setTokenSources', [source.token, source.cancel]) config.cancelToken = source.token; // if (Cookies.get("access_token")) { // config.headers.Authorization = "Bearer" + Cookies.get("access_token") // } return config }, error => { return Promise.reject(error.response) }) // http response 拦截器 axios.interceptors.response.use( response => { NProgress.done() if (respones.config.cancelToken) { store.commit('delTokenSources', respones.config.cancelToken) } if (response.data.code === 11000) { Cookies.set("access_token", response.data.message, { expires: 1 / 12 }) return Promise.resolve() } else if (response.data.code === 10000) { // 约定报错信息 Message({ message: response.data.message, type: "warning" }) return Promise.reject(response) } else { return Promise.resolve(response) } }, error => { if (error.response.status === 404) { Message({ message: "请求地址出错", type: "warning" }) } else if (error.response.status === 401) { Message({ message: error.response.data.message, type: "warning" }) Cookies.remove("access_token") setTimeout(() => { location.reload() }, 3000) } return Promise.reject(error.response) // 返回接口返回的错误信息 }) export default axios