import axios from "axios";
let http = axios.create({
baseURL: "/api", //配置默认的地址
withCredentials: true, //将会默认携带认证给后端
timeout: 1000 * 10, //请求超时设置,如果超过了10秒,那么就会进入reject
});
http.interceptors.request.use(
//axios的请求拦截器,它可以拦截所有的请求,为所有的请求添加逻辑
// 拦截了请求后,如果不放行,那么所有的请求会一直被拦截,因此需要return不需要拦截的请求。
function (config) {
let noLanJie = [
"/users/login",
"/users/getCaptcha",
"/users/verifyCaptcha",
]; //将不需要拦截的请求拿出来
// console.log(config); //打印的是,被拦截了的请求的相关的东西
// console.log(config.url); //打印的是拦截的请求的接口,类似于:/users/login
if (noLanJie.includes(config.url)) {
//如果当前的请求地址中,包含在不需要拦截请求地址中,那么就放行
return config;
} else {
//如果是需要被拦截的请求
let token = localStorage.getItem("token") || ""; //将登录成功后,在后端中返回来的token从本地存储取出来
config.headers["authorization"] = token; //给需要拦截的请求中请求头添加token。config.headers["authorization"]是一个固定的写法
return config; //添加后,放行
}
}
);
export default http;
?
|