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;
|