axios拦截器如何使用
时间: 2024-09-14 14:10:56 浏览: 34
axios 是一个基于 Promise 的 HTTP 客户端,用于浏览器和 node.js 中发送异步 HTTP 请求。拦截器(Interceptors)是 axios 提供的一个非常实用的功能,允许你拦截请求或响应,并且在它们到达 `then()` 或 `catch()` 之前修改它们。
使用 axios 拦截器的基本步骤如下:
1. 在发送请求或响应之前执行某些逻辑,你可以定义请求拦截器。
2. 在请求或响应完成之前修改它们,你可以定义响应拦截器。
以下是如何使用 axios 拦截器的示例代码:
```javascript
// 引入 axios
import axios from 'axios';
// 创建 axios 实例
const service = axios.create({
baseURL: '/api', // API 的基础路径
timeout: 5000 // 请求超时时间
});
// 请求拦截器
service.interceptors.request.use(
config => {
// 在发送请求之前做些什么,例如添加 token 到请求头
const token = 'Bearer your-token';
if (token) {
config.headers['Authorization'] = token;
}
return config;
},
error => {
// 对请求错误做些什么
return Promise.reject(error);
}
);
// 响应拦截器
service.interceptors.response.use(
response => {
// 对响应数据做点什么,例如响应头处理等
const res = response.data;
// 根据业务需求可以对返回的 res 进行一些处理
return res;
},
error => {
// 对响应错误做点什么
// 例如:服务器返回错误,或者网络超时等情况
return Promise.reject(error);
}
);
// 使用 service 发送请求
service.get('/user/12345')
.then(response => {
console.log(response);
})
.catch(error => {
console.error(error);
});
```
通过上述代码,你可以在请求被发送之前添加一些特定的头信息,例如认证 token。同样地,你可以在响应返回之前对其进行一些处理,比如判断状态码,或者统一处理错误。
阅读全文