从今天开始争取抽空写下技术博客,不会写多牛逼的技术,只写一些工作期间的一些心得,可能是学习笔记,也有可能是解决哪些bug。能坚持写多少篇就写多少篇。
刚来公司的时候,接了一个需要持续开发的小程序,主要就是把公司原本的pc端后台管理系统的功能在小程序上实现,使用uni-app来开发编译。自己本身对小程序没怎么接触,所以现在是边学边干的状态。 第一个需求,小程序在开发者工具和自己的手机(华为mate8)上预览时运行正常,但是在发布体验版给团队其他人测试时,发现会有请求失败的情况。后来在翻了好几遍的文档后终于在这里找到了线索:
域名只支持 https (wx.request、wx.uploadFile、wx.downloadFile) 和 wss (wx.connectSocket) 协议;
而测试环境的服务器接口是用http协议的,所以可以猜测是因为协议的问题导致请求失败,但为什么在开发者工具和自己的手机上运行正常呢?答案在这里:
在微信开发者工具中,可以临时开启 开发环境不校验请求域名、TLS版本及HTTPS证书 选项,跳过服务器域名的校验。此时,在微信开发者工具中及手机开启调试模式时,不会进行服务器域名的校验。
如果手机上出现 “打开调试模式可以发出请求,关闭调试模式无法发出请求” 的现象,请确认是否跳过了域名校验,并确认服务器域名和证书配置是否正确。
后面再确认,发现的确是在未开启调试模式时请求失败,开启后请求成功。
为了使测试更方便,使用wx.setEnableDebug(Object object)方法,使真机在测试环境下可以自行开启调试模式。