axios interceptors拦截一切请求
时间: 2024-09-06 15:06:27 浏览: 29
axios是一个流行的基于Promise的HTTP客户端,它允许你在发送网络请求之前或之后添加自定义的功能,这被称为interceptors,也就是拦截器。在axios中,主要有两个内置的拦截器:`requestInterceptor` 和 `responseInterceptor`。
1. **requestInterceptor**(请求拦截器):在每次发送请求之前会被调用,可以用来设置默认的HTTP头、验证请求数据、或者做其他准备工作,如登录验证,如果需要对所有请求进行统一处理,就在这里添加。
2. **responseInterceptor**(响应拦截器):在每次接收到服务器响应后执行,通常用于处理错误、转换数据格式,或者在成功时添加额外的信息。
你可以这样配置:
```javascript
axios.interceptors.request.use(
(config) => {
// 对请求做些什么,比如添加token等
config.headers.common['Authorization'] = 'Bearer ' + localStorage.getItem('token');
return config;
},
(error) => {
// 对请求错误做些处理
return Promise.reject(error);
}
);
axios.interceptors.response.use(
(response) => {
// 对响应数据做处理,例如解码或解析
return response.data;
},
(error) => {
// 对响应错误做处理,如显示错误信息
if (error.response) {
console.log(error.response.status);
console.log(error.response.statusText);
} else {
console.error(error.message);
}
return Promise.reject(error);
}
);
```
阅读全文