楠哥亡命天涯
楠哥亡命天涯
  • 发布:2020-01-06 10:30
  • 更新:2020-10-07 18:30
  • 阅读:2347

【报Bug】uniapp的安卓10系统请求fail abort

分类:uni-app

详细问题描述

(DCloud产品不会有明显的bug,所以你遇到的问题大都是在特定环境下才能重现的问题,请仔细描述你的环境和重现方式,否则DCloud很难排查解决你的问题)

[内容]
安卓10版本的手机请求接口,request:fail abort",苹果请求没问题,安卓10以下也没问题.
已经将sslVerify:false.

重现步骤

手机升级到安卓10之后,打开app网络请求全部失败.
request:fail abort

打印的错误是---COMMA------BEGIN:JSON---{"errMsg":"request:fail abort"}---END:JSON--- at apis\http.js:71
[步骤]
这里是我自己封装的请求,小程序和苹果和安卓10以下的系统都能正常请求.

import store from "@/store";  
function HTTP(obj, config) {  

    let defaultConfig = {  
        isRes: false,  
        loading: false  
    }  

    config = { ...defaultConfig,  
        ...config  
    }  

    // 如果需要显示loading,mask防止点击穿透  
    config.loading && uni.showLoading({  
        title: '加载中',  
        mask: true  
    });  

    return new Promise((resolve, reject) => {  

        let options = {  
            url: "",  
            method: "GET",  
            data: {},  
            dataType: "json",  
            sslVerify:false,  
            header: {  
                "content-type": "application/json",  
                "X-requested-With": "XMLHttpRequest",  
                'Authorization':`Bearer ${store.state.token}`,  
            },  
            success: (res) => {  
                // console.log('Promise成功的res是',res)  
                uni.hideLoading();  
                // 状态码为200  
                // console.log('获取到的链接',res);  
                if (res.statusCode == 200) {  
                    let data = res.data;  
                    //自动校验用户是否登录过期  
                    // if (data.code == "01") {  
                    //  store.dispatch("reLogin");  
                    //  return;  
                    // }    
                    //返回 { code:10000,msg:"消息",data:[] }  
                    if (config.isRes) {  

                        resolve(data)  
                    }  
                    // 返回 data:[]  
                    else {  
                        //console.log('data是',data);  
                        resolve(data || true);  
                        // if (data.code == 200) {  
                        //    
                        //    
                        // } else {  
                        //  uni.showToast({  
                        //      title:'失败',  
                        //      icon: "none",  
                        //      duration: 2000  
                        //  })  
                        //  reject(data);  
                        // }  
                    }  
                } else {  
                    reject("HTTP:状态码异常!");  
                }  
            },  
            fail: (err) => {  
                // console.log('Promise异常的数据',err);  
                uni.hideLoading();  
                uni.showToast({  
                    title: "网络异常,请稍后再试!",  
                    icon: "none",  
                })  
                reject("网络异常,请稍后再试!");  
            },  
            complete: () => {}  
        }  

        options = { ...options,  
            ...obj  
        };  

        const OPENID = uni.getStorageSync("openId");  
        if (OPENID) options["header"]["openId"] = OPENID;  

        if (options.url && options.method) {  
            wx.request(options);  
        } else {  
            wx.showToast({  
                title: 'HTTP:缺失参数',  
                icon: "none",  
                duration: 2000  
            })  
        }  
    })  

}  

export default {  
    GET(url, data = {}, config) {  
        return HTTP({  
            url,  
            data,  
            sslVerify:false,  
            method: "GET"  
        }, config);  
    },  
    PUT(url, data = {}, config) {  
        return HTTP({  
            url,  
            data,  
            sslVerify:false,  
            method: "PUT"  
        }, config);  
    },  
    POST(url, data = {}, config) {  
        return HTTP({  
            url,  
            data,  
            sslVerify:false,  
            method: "POST"  
        }, config);  
    },  
    DELETE(url, data = {}, config) {  
        return HTTP({  
            url,  
            data,  
            sslVerify:false,  
            method: "DELETE"  
        }, config);  
    },  

    POSTformdata(url, data = {}, config) {  
        return HTTP({  
            url,  
            data,  
            sslVerify:false,  
            method: "POST"  
        }, config);  
    }  
}  

[结果]

[期望]

[如果语言难以表述清晰,拍一个视频或截图,有图有真相]

IDE运行环境说明

[HBuilder 或 HBuilderX。如果你用其他工具开发uni-app,也需要在此说明]

[IDE版本号]
2.5.1
[windows版本号]
win10
[mac版本号]

uni-app运行环境说明

[运行端是h5或app或某个小程序?]
app

[运行端版本号]
安卓10,
[项目是cli创建的还是HBuilderX创建的?如果是cli创建的,请更新到最新版cli再试]
hbuilderX创建的
[编译模式是老模板模式还是新的自定义组件模式?]
新的自定义组件模式

App运行环境说明

[Android版本号]
10
[iOS版本号]
12.4
[手机型号]
小米9se 华为 mate30
[模拟器型号]

附件

[IDE问题请提供HBuilderX运行日志。菜单帮助-查看运行日志,点右键打开文件所在目录,将log文件压缩成zip包上传]

[App问题请提供可重现问题的代码片段,你补充的细一点,问题就解决的快一点]

[App安装包或H5地址]

[可重现代码片段]

联系方式

[QQ]

2020-01-06 10:30 负责人:无 分享
已邀请:
楠哥亡命天涯

楠哥亡命天涯 (作者) - 无无无无无无无无无无无

自定

楠哥亡命天涯

楠哥亡命天涯 (作者) - 无无无无无无无无无无无

自顶

楠哥亡命天涯

楠哥亡命天涯 (作者) - 无无无无无无无无无无无

自顶

楠哥亡命天涯

楠哥亡命天涯 (作者) - 无无无无无无无无无无无

自顶

DCloud_Android_zl

DCloud_Android_zl

麻烦提供一个完整的测试demo。

景风

景风 - 950005

升级版本后,出现了request:fail abort statusCode:-1,设置sslVerify:false也一样不行,安卓10,请问有没有大神知道怎么处理?

2***@qq.com

2***@qq.com

请求的接口换成https即可,童叟无欺

  • 有问

    我用HTTPS和HTTP也都不行。逍遥模拟器上测试的。接口直接在浏览器里访问都没事。

    2020-12-21 15:55

该问题目前已经被锁定, 无法添加新回复