微信小程序如何实现请求拦截和响应拦截
时间: 2024-06-08 11:11:53 浏览: 7
在微信小程序中,可以使用拦截器来实现请求拦截和响应拦截。
1. 请求拦截
在发起请求之前,可以使用 wx.request 的 header 参数设置请求头信息,也可以通过 wx.request 的 beforeSend 回调函数实现请求拦截,对请求参数进行修改或添加请求头信息。
示例代码:
```javascript
wx.request({
url: 'https://example.com',
method: 'POST',
data: {
name: '张三',
age: 18
},
header: {
'content-type': 'application/json'
},
beforeSend: function (options) {
// 在请求发起之前,对请求参数进行修改
options.data.token = '123456'
// 在请求发起之前,添加请求头信息
options.header.Authorization = 'Bearer ' + wx.getStorageSync('token')
// 必须返回 options 对象,否则请求将被终止
return options
},
success: function (res) {
console.log(res.data)
}
})
```
2. 响应拦截
在接收到响应之后,可以使用 wx.request 的 success 回调函数处理响应结果,也可以通过 wx.request 的 complete 回调函数实现响应拦截,对响应结果进行修改或添加响应头信息。
示例代码:
```javascript
wx.request({
url: 'https://example.com',
method: 'POST',
data: {
name: '张三',
age: 18
},
header: {
'content-type': 'application/json'
},
success: function (res) {
console.log(res.data)
},
complete: function (res) {
// 在接收到响应之后,对响应结果进行修改
res.data.age = 20
// 在接收到响应之后,添加响应头信息
res.header['X-Response-Token'] = '123456'
// 必须调用 complete 回调函数,否则请求将被终止
complete(res)
}
})
```
需要注意的是,使用 beforeSend 和 complete 回调函数时,必须返回 options 对象和调用 complete 回调函数,否则请求将被终止。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)