项目要用到JTW需要携带token到后台,用的vue,于是写了一个axios的拦截器,先说拦截器的原理,axios是基于Promise的,拦截器就是,你在发送请求前准备要加上的数据处理,又拦截器就有响应器,响应器就是得到返回数据后的数据处理,
class AjaxRequest {
constructor() {
this.baseURL = process.env.NODE_ENV === 'development' ? 'http://localhost:3000' : '/';
this.timeout = 2000;
}
request(config) { // 用户请求设置的方法
const instance = axios.create({
baseURL: this.baseURL,
timeout: this.timeout,
});
// 设置拦截器
console.log(config)
instance.interceptors.request.use((config) => {
console.log(1);
config.headers.Authorization = localStorage.getItem('token');
return config;
}, err => Promise.reject(err));
instance.interceptors.request.use((config) => {
config.headers.Authorization = localStorage.getItem('token');
return config;
}, err => Promise.reject(err));
// 设置响应拦截器
instance.interceptors.response.use(res => res.data, err => Promise.reject(err));
console.log(instance(config))
console.log(config)
return instance(config);
}
}