import axios from "axios"; import {Message} from "element-ui"; import router from "../../router"; //1.设置基础路径(能够统一管理接口的服务器地址) 配置接口的服务器地址 //http://localhost:3001:服务器地址(开发环境,测试环境,生产环境) //export const BASE_URL="http://localhost:3001"; //axios.defaults.baseURL=process.env.VUE_APP_BASE_API; //2.统一拦截请求 往请求头中设置token(后端需要根据请求头中的token,进行身份验证之后才可以去访问接口) //request 请求对象(用来给后端传递数据的) axios.interceptors.request.use(request=>{ let token=localStorage.getItem("token"); if(token){ request.headers.Authorization=token; } return request; }); //3.统一拦截后端的响应,然后进行统一的异常处理甚至是数据处理 axios.interceptors.response.use(response=>{ let {data}=response; if(data.status==401){//后端:没有携带token ,以及 token超时都是401,但是他们的message消息提示不同 let token=localStorage.getItem("token"); if(token){//401 token还存在说明token超时了 localStorage.removeItem("token"); } Message.warning(data.message); setTimeout(()=>{ router.push("/login"); },2000); } return data;//就是后端响应的数据 }); export const request=axios;