在多域名接口请求中,回调参数中没有 url 地址或者参数,会导致 uni.addInterceptor 难以处理错误信息,请问此类问题,是否有相关的建议。
假设,我请求了两个域名的接口,返回了不同的数据,如:
uni.request({
url: 'http://aaa.com/article?token=1',
success(res) {
if (res.data.code === 1) {
console.log('请求成功,展示数据');
} else {
console.log('请求错误,显示错误');
}
},
});
uni.request({
url: 'http://bbb.com/article?token=2',
success(res) {
if (res.data.code === 0) {
console.log('请求成功,展示数据');
} else {
console.log('请求错误,显示错误');
}
},
});
我设置了一个拦截器,期望实现下面的功能:
uni.addInterceptor('request', {
success(args) {
let url = '';
let ok_code = null;
if (url === 'aaa.com') {
ok_code = 1;
} else if (url === 'bbb.com') {
ok_code = 0;
}
if (res.data.code === ok_code) {
console.log('请求成功,展示数据');
} else {
console.log('请求错误,显示错误');
}
},
});
如上所示,url 在 success 方法中无法获取。
如果进一步优化,uni.addInterceptor 针对 request 可以设置多个拦截器,aaa.com 一个,bbb.com 一个,以达到最佳插件化开发的目的。
zzz_01
未搜到HBuilderX 3.7.13.20230411-alpha
2023-04-11 20:24