最近正在研究微信小程序,其中有个组件wx.request是发送https请求的,我在调试工具里发送的时候是没有问题的,但是一到真机调试的时候怎样都发送不出去,故排查了一阵子,终于找到解决方法了。
在小程序的wx.request内容如下
一、在真机里发送wx.request请求失败,在控制台上network上看不到发送请求。
这种有几个解决方案,一个是在详情设置里将不校验合法域名那一栏打钩,这种方法仅能在调试工具里可以发送请求,在真机上还是发送不出去
另一个解决方案是在小程序后台配置服务器,访问小程序后台微信公众平台,点击开发管理,找到服务器域名,将你的业务后端域名填写进去,保存后有延迟,可以稍等十几分钟后再尝试请求
在真机请求后发现可以正常发送wx.request了
二、在真机里发送wx.request请求成功,控制台network也看到请求了,但是报错
在确认这个请求路径是正确并能正常请求数据的话,那有可能是后端的ssl证书有问题,少了一个中间证书。我这个服务器是nodejs,我的crt证书其实是少了个中间证书的,那么我们可以找一个网站生成一个中间证书
打开下载DigiCert和GeoTrust中间证书_OPENSSL工具包_迅通诚信,将crt证书复制下去
之后会生成一个中间证书,将中间证书的内容复制到crt文件(原crt里面的内容不要删除)的最下面
接着重新启用nodejs,重新使用真机请求,发现可以正常请求到数据了。