微信小程序request:fail报错(包括不执行fail回调问题)

微信小程序request:fail报错(包括不执行fail回调的问题)

  • 1. 不执行fail回调的问题
  • 2. request:fail报错原因
    • 2.1 小程序未配置域名导致的错误
    • 2.2 微信小程序使用的服务器环境不支持TLS1.2
    • 2.3 使用的SSL证书不信任
    • 2.4 SSL证书证书链缺乏
    • 2.5 域名未备案,或者备案了未超过24小时。
    • 2.6 苹果部分机型可用,部分机型报错:或安卓机型报错等
    • 2.7 微信小程序与第三方服务器通讯的域名必要条件

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)

将小程序访问网址域名填写到小程序后台,设置—开发设置—服务器域名,如下:
微信小程序request:fail报错(包括不执行fail回调问题)_第1张图片

填写完成并保存,再次打开小程序就可以啦

2.2 微信小程序使用的服务器环境不支持TLS1.2

微信小程序request:fail报错(包括不执行fail回调问题)_第2张图片
Windows系统至少要2008R2以上,才能支持,但2008操作系统需要手动工具调整 ,其它的服务器环境调整方法:苹果ATS特性服务器配置指南_常见问题

2.3 使用的SSL证书不信任

可以苹果ATS检测确定是否支持。

结果这样的说明证书正常,如果检测出不信任或者证书问题,请重新申请:https://gworg.taobao.com/
微信小程序request:fail报错(包括不执行fail回调问题)_第3张图片

2.4 SSL证书证书链缺乏

如果SSL证书缺乏中间证书会导致同样的错误,这种情况下需要去补充证书链:
下载DigiCert和GeoTrust中间证书

2.5 域名未备案,或者备案了未超过24小时。

微信小程序的域名必须要备案,并且24小时后去公众号小程序配置域名才生效。

如果域名启用端口的建议改成常规443端口使用。

2.6 苹果部分机型可用,部分机型报错:或安卓机型报错等

微信小程序request:fail报错(包括不执行fail回调问题)_第4张图片

可能是证书不受信任,在此查看证书信任列表:苹果支持的证书列表:
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、微信小程序后台加上合法域名设置(一个月内改的次数是有限的,且行且珍惜)如下图

微信小程序request:fail报错(包括不执行fail回调问题)_第5张图片
以上条件,必需全满足,要不然你手机预览的时候就会发现通讯不了

你可能感兴趣的:(uniapp,微信小程序,小程序,前端)