一·背景描述
最近一直在开发小程序后端,也开始自己学习开发小程序前端了,遇到个问题比较郁闷。自己朋友和用户的手机在访问小程序的时候 会提示网络错误,提示这个问题 只有在wx.request 发起向后端接口的请求失败后才会提示。
二·问题排查
1·微信开发者工具 发起请求无问题 2·笔者机型iphone6 发起请求无问题 3·已知出现该问题的机型:华为荣耀,诺基亚X6 等安卓机。
2·![这里写图片描述](https://i-blog.csdnimg.cn/blog_migrate/7246ea9b74b138070afd463a1a4ad5ba.jpeg)
通过小程序数据助手分析得知,出问题前大部分用户是 iphone 机型,只有个别的安卓机没出问题
3·附 前端 wx.request 请求代码
wx.request({
"header": {
"Content-Type": "application/json",
"X-Token": userInfo?userInfo.token : '',
"X-UserId": userInfo ? userInfo.userId ? userInfo.userId:'' : ''
},
"url" : `${root}${url}`,
"method" : method,
"data" : data,
"success" : ({data})=> {
var code = data.code || data.CODE;
if(code === 200) {
onSuccess(data);
} else if(code === 401){
getApp().login(()=>{
onError && typeof onError == 'function' && onError(data);
});
} else{
onError && typeof onError == 'function' && onError(data);
}
},
"fail" : (e)=> {
console.log(e,999)
if (e.errMsg ==="request:fail abort")return;
wx.showModal({
title: '提示',
content: '请求失败,请检查网络',
showCancel: false,
confirmColor: '#0f77ff',
success: (res) => {}
})
},
}
我们在fail 里 添加打印 异常信息 console.log(e,999) ,出错机型 通过微信开发者工具远程调试 ,console 里 打印如下:
{“errMsg”:”request:fail ssl hand shake error:java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.”}