uniapp如何在小程序中封装请求拦截
时间: 2023-12-07 20:03:55 浏览: 88
在uniapp中,可以使用uni.request来发起请求,并且可以通过拦截器来实现请求拦截。
具体步骤如下:
1. 创建一个封装的请求类,例如Request.js。
2. 在Request.js中定义拦截器。
```
// Request.js
export default class Request {
constructor() {
this.interceptors = {
request: (config) => {
// 在请求发送之前做些什么
return config;
},
response: (response) => {
// 对响应数据做些什么
return response;
},
};
}
// 发起请求
async sendRequest(config) {
// 请求拦截器
if (this.interceptors.request) {
config = this.interceptors.request(config);
}
let response = await uni.request(config);
// 响应拦截器
if (this.interceptors.response) {
response = this.interceptors.response(response);
}
return response;
}
// 设置请求拦截器
setRequestInterceptors(callback) {
this.interceptors.request = callback;
}
// 设置响应拦截器
setResponseInterceptors(callback) {
this.interceptors.response = callback;
}
}
```
3. 在需要发送请求的页面中引入Request.js,并实例化一个Request对象。
```
import Request from '@/common/Request.js';
const request = new Request();
// 设置请求拦截器
request.setRequestInterceptors((config) => {
// 在请求发送之前做些什么
return config;
});
// 设置响应拦截器
request.setResponseInterceptors((response) => {
// 对响应数据做些什么
return response;
});
// 发送请求
request.sendRequest({
url: 'http://example.com/api',
method: 'GET',
}).then((response) => {
console.log(response.data);
}).catch((error) => {
console.log(error);
});
```
通过这种方式,就可以在小程序中封装请求拦截了。可以根据具体需求来定义拦截器中的处理逻辑。
阅读全文