uniapp 拦截器
时间: 2023-12-22 09:29:22 浏览: 305
uniapp拦截器是一种用于拦截和处理网络请求的机制。通过使用拦截器,我们可以在发送请求之前和接收响应之后对请求进行一些处理,例如添加请求头、处理错误信息等。在uniapp中,我们可以使用uni.request方法进行网络请求,但是每次请求都需要按照一定的格式来编写代码,这样会导致代码冗余并且难以维护。为了解决这个问题,我们可以对uni.request进行二次封装,实现拦截器的功能。
以下是一个示例,演示了如何在uniapp中封装请求拦截器:
```javascript
// 创建一个拦截器对象
const interceptor = uni.request.interceptors;
// 添加请求拦截器
interceptor.request.use((config) => {
// 在发送请求之前做一些处理,例如添加请求头
config.header.Authorization = 'Bearer token123';
return config;
}, (error) => {
return Promise.reject(error);
});
// 添加响应拦截器
interceptor.response.use((response) => {
// 在接收响应之后做一些处理,例如处理错误信息
if (response.statusCode !== 200) {
uni.showToast({
title: '请求失败',
icon: 'none'
});
}
return response;
}, (error) => {
return Promise.reject(error);
});
// 发送网络请求
uni.request({
url: '/api/public/v1/home/catitems',
method: 'GET',
success: (res) => {
console.log(res.data);
},
fail: (err) => {
console.log(err);
}
});
```
通过上述代码,我们可以看到拦截器的使用过程。首先,我们创建了一个拦截器对象,然后使用interceptor.request.use方法添加了一个请求拦截器,该拦截器在发送请求之前会添加一个请求头。接着,我们使用interceptor.response.use方法添加了一个响应拦截器,该拦截器在接收响应之后会检查响应的状态码,如果不是200,则显示一个请求失败的提示。最后,我们使用uni.request方法发送网络请求,并在success和fail回调函数中处理响应结果和错误信息。
阅读全文