uni.addInterceptor({  
  returnValue(args) {  
    // 只返回 data 字段  
    console.log(args.data)  
    return args.data  
  }  
}) 
                                        
                                    
                                    - 发布:2023-02-27 18:41
- 更新:2025-01-22 09:57
- 阅读:1425
产品分类: uniapp/H5
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: Windows 11 家庭中文版 21H2
HBuilderX类型: 正式
HBuilderX版本号: 3.6.18
浏览器平台: Chrome
浏览器版本: 95内核
项目创建方式: HBuilderX
操作步骤:
                                    
                                         
                                
                                                                                                预期结果:
                                    
                                    
                                        args.data是响应数据
                                     
                                
                                                                                                args.data是响应数据
实际结果:
                                    
                                    
                                        args.data是null
                                     
                                
                                                            args.data是null
 
                                                                    
                                                                看看args是什么
如果是Promise {<pending>}
这里要改一下
uni.addInterceptor({
async returnValue(args) {
let res = await args
return res.data
}
})
 
                                                                    
                                                                夜散点炽 - 移动开发
这是我测试出来的,资料找不到,还有APP端的,因为我的工具不能断点调试vue3页面,没法测试,希望对你有帮助
uni.addInterceptor('request', {
invoke(args){//请求前触发,true放行,false阻断
return true;
},
returnValue(args){//实现分流,在成功和失败前执行,
if(args){                        //当invoke返回值为false时这边为null,所以要判断空指针
// #ifdef MP-WEIXIN                         //微信小程序
args.onHeadersReceived((res)=>{
if(res.statusCode==200){
//什么都不执行则执行成功回调success
}else{
args.abort();    //执行失败回调fail
}
})
//#endif
// #ifdef H5                                        //h5
args._xhr.onreadystatechange = (res) =>{
if(args._xhr.readyState==4){//
if(res.target.status==200){
args._xhr.onload();         //执行成功回调success
}else{
args._xhr.onerror();      //执行失败回调fail
}
}
}
// #endif
}
},
success(res,obj){
//成功回调
},
fail(e, obj){
//失败回调fail
}
});
 
             
             
             
			

 
                                                                    
 
                                                                     
            
弈凌 (作者)
文档已补充官方示例出处与打印结果
2023-03-11 22:03