axios响应拦截器中如何获取请求参数
时间: 2023-09-21 11:07:59 浏览: 262
请求拦截器和响应拦截器.docx
5星 · 资源好评率100%
axios响应拦截器中是无法直接获取请求参数的,因为请求参数是在请求拦截器中处理的,而响应拦截器是在服务器响应之后处理的,两者之间没有直接的联系。不过,我们可以通过一些方法来间接获取请求参数,下面介绍两种常用的方法。
1. 使用闭包
在请求拦截器中获取请求参数,并将参数存储在闭包中,然后在响应拦截器中使用即可。
```javascript
import axios from 'axios'
let requestData // 定义一个变量用于存储请求参数
const instance = axios.create({
// ...
})
instance.interceptors.request.use(config => {
// 在请求发送之前获取请求参数,并存储在requestData中
requestData = config.data || config.params
return config
})
instance.interceptors.response.use(response => {
// 在响应处理之前使用requestData
console.log(requestData)
return response
})
```
2. 使用自定义属性
在请求拦截器中,将请求参数存储在请求配置对象的自定义属性中,然后在响应拦截器中获取自定义属性即可。
```javascript
import axios from 'axios'
const instance = axios.create({
// ...
})
instance.interceptors.request.use(config => {
// 在请求发送之前将请求参数存储在自定义属性中
config.requestData = config.data || config.params
return config
})
instance.interceptors.response.use(response => {
// 在响应处理之前获取自定义属性中的请求参数
console.log(response.config.requestData)
return response
})
```
以上两种方法都可以间接获取请求参数,具体使用哪种方法取决于实际需求。
阅读全文