微信小程序request:fail报错(包括不执行fail回调的问题)
1. 不执行fail回调的问题
首先,很多的人可能认为,success就是我成功请求到数据了,也就是当请求返回的状态码是2XX,而返回4XX,5XX肯定是出错了,出错了之后就执行fail回调函数。
但是事实上并不是这样 的,其实只要你的wx.request成功发出了请求,无论返回什么http状态码,都会走success。
那有的人就会问,这样success和fail有什么意义? 答案是这样的设定是非常合理的,当我们遇到断网,域名解析有问题,或者尤其是我们去调用restful api时,可能会在url格式,参数类型上出些问题,这些情况下才会调用到fail。
反之4xx、5xx 等 response的异常状态不会进入fail回调,所以我们需要在success回调中检查statusCode,根据http状态码的不同去做相应的逻辑判断。
2. request:fail报错原因
2.1 小程序未配置域名导致的错误
登陆小程序后台(https://mp.weixin.qq.com)
将小程序访问网址域名填写到小程序后台,设置—开发设置—服务器域名,如下:
填写完成并保存,再次打开小程序就可以啦
2.2 微信小程序使用的服务器环境不支持TLS1.2
Windows系统至少要2008R2以上,才能支持,但2008操作系统需要手动工具调整 ,其它的服务器环境调整方法:苹果ATS特性服务器配置指南_常见问题
2.3 使用的SSL证书不信任
可以苹果ATS检测确定是否支持。
结果这样的说明证书正常,如果检测出不信任或者证书问题,请重新申请:https://gworg.taobao.com/
2.4 SSL证书证书链缺乏
如果SSL证书缺乏中间证书会导致同样的错误,这种情况下需要去补充证书链:
下载DigiCert和GeoTrust中间证书
2.5 域名未备案,或者备案了未超过24小时。
微信小程序的域名必须要备案,并且24小时后去公众号小程序配置域名才生效。
如果域名启用端口的建议改成常规443端口使用。
2.6 苹果部分机型可用,部分机型报错:或安卓机型报错等
可能是证书不受信任,在此查看证书信任列表:苹果支持的证书列表:
iOS 中可用的受信任根证书列表 - Apple 支持 (中国)
证书常见问题参考:https://blog.csdn.net/Gworgcom/article/details/121349211
2.7 微信小程序与第三方服务器通讯的域名必要条件
1、一个已备案的域名,不是localhost、也不是127.0.0.1,域名不能加端口
2、加ssl证书,也就是https://xxx
3、HTTPS 服务器的 TLS 版本支持1.2及以下版本,一般就是1.0、1.1、1.2要同时支持这三个版本,一个也不能少,要不然就会出现下面这种情况
4、微信小程序后台加上合法域名设置(一个月内改的次数是有限的,且行且珍惜)如下图
以上条件,必需全满足,要不然你手机预览的时候就会发现通讯不了
版权归原作者 无·糖 所有, 如有侵权,请联系我们删除。