axios 使用axios-retry插件后,请求拦截器里已携带config,但是响应拦截没有返回config
时间: 2024-02-27 11:51:25 浏览: 116
使用 `axios-retry` 插件后,请求拦截器里携带的 `config` 参数会被 `axios-retry` 中间件拦截并进行修改。因此,在响应拦截器中直接返回 `config` 参数可能会导致请求失败。
如果你需要在响应拦截器中获取请求的 `config` 参数,可以采用以下两种方式:
1. 在请求拦截器中将 `config` 参数存储在一个全局变量或者其他地方,然后在响应拦截器中使用存储的参数。
2. 使用 `axios-retry` 提供的 `onRetry` 回调函数,在每次重试之前获取当前请求的 `config` 参数。
例如:
```javascript
import axios from 'axios';
import axiosRetry from 'axios-retry';
axiosRetry(axios, {
retries: 3, // 最大重试次数
retryDelay: (retryCount) => {
return retryCount * 1000; // 重试延时,每次重试延时时间递增
},
onRetry: (err) => {
const config = err.config;
// 可以在这里获取当前请求的 config 参数并进行操作
}
});
axios.interceptors.request.use((config) => {
// 在请求拦截器中对 config 参数进行处理
return config;
}, (error) => {
return Promise.reject(error);
});
axios.interceptors.response.use((response) => {
// 在响应拦截器中对响应数据进行处理
return response;
}, (error) => {
return Promise.reject(error);
});
```
希望能够帮到你,如有不明白的地方可以再问我。
阅读全文