7***@qq.com
7***@qq.com
  • 发布:2023-06-08 10:54
  • 更新:2023-06-09 09:10
  • 阅读:164

request 无响应且控制台无报错

分类:uni-app

关键请求代码:

uni.request({  
    url: process.env.BASE_URL + 'path',  
    data: {  
        category_id: 3  
    },  
    header: {  
        'Authorization': 'Bearer ' + uni.getStorageSync('token')  
    },  
    success(a,b,c) {  
        console.log('返回数据', a,b,c);  
    },  
    fail(a,b,c) {  
        console.log('返回错误', a,b,c);  
    },  
    complete(a,b,c) {  
        console.log('请求完成', a,b,c);  
    }  
})

问题描述:
在某些情况下,request无响应(即success,fail,complete3个回调方法都没有被回调)且控制台无任何错误输出。
根据返回的数据结构出现上述问题,数据结构大体如下:

{  
    "code": 200,  
    "msg": "操作成功",  
    "data": [  
        {  
            "id": 1,  
            "category_id": 3,  
            "reason_id": 0,  
            "type": 1,  
            "title": "您属于下列哪种人员?",  
            "quiz_item_num": 4,  
            "sorted": 0,  
            "quiz_items": [ //根据这个key下面的数量出现无响应问题  
                {  
                    "id": 1,  
                    "category_id": 3,  
                    "reason_id": 0,  
                    "quiz_id": 1,  
                    "title": "某某人员",  
                    "show_title": "",  
                    "skip_type": null,  
                    "skip_quiz_ids": null,  
                    "other_quiz_item_ids": null,  
                    "type": 4,  
                    "is_end": 1,  
                    "quiz_type": 1,  
                    "learn_url": null,  
                    "is_report": 1,  
                    "next_quiz_id": 0,  
                    "simple_checkbox_type": 0,  
                    "suffix_title": ""  
                }  
            ]  
        }  
    ]  
}

具体情况:
当不包含quiz_items时,一切正常
当quiz_items = [] 时,一切正常
当quiz_items中的字段较少时,一切正常
当quiz_items中的字段过多(不知道具体是几个字段,上面的例子就是字段过多),无响应

官网文档上说一次请求不超过50K,我可以确定一次请求绝对没有超过这个限制。
“单次网络请求数据量建议控制在50K以下(仅指json数据,不含图片),过多数据应分页获取,以提升应用体验。“
https://uniapp.dcloud.net.cn/api/request/request.html#request

2023-06-08 10:54 负责人:无 分享
已邀请:
7***@qq.com

7***@qq.com (作者) - coder

解决了。
是因为返回数据一旦超过了某个数(不是50K),控制台就不打印了!!!,导致我以为打印的地方没执行。实际上,是执行了的,数据也能正常拿到。

要回复问题请先登录注册