小程序不告诉的禁止访问
这里将说几个你在开发微信小程序时由于网络请求限制让你晕头转向的情况说明。
下面是各种小程序启动方式与效验合法域名的对应表:
| 运行端 | 版本 | 启动方式 | 开发调试 | 运行时校验 request 合法域名 |
|---|---|---|---|---|
| 模拟器 | 开发版 | 微信开发者工具 > 编译 | 默认开启 | 否 |
| 手机 | 开发版 | 微信开发者工具 > 预览 > 扫描二维码预览 | 开启 I 关闭 | 否 I 是 |
| 手机 | 开发版 | 微信开发者工具 > 预览 > 自动预览 | 开启 I 关闭 | 否 I 是 |
| 手机 | 开发版 | 微信开发者工具 > 真机调试 | 默认开启 | 否 |
| 手机 | 体验版 | 正常使用方式 | 开启 I 关闭 | 否 I 是 |
| 手机 | 发布版 | 正常使用方式 | 无 | 是 |
建议:在开发过程中尽量关闭【微信开发者工具 > 详情 > 本地设置 > 不校验合法域名、web-view(业务域名)、TLS 版本以及 HTTPS 证书】,否则可能在你发布体验的时候就会出现无法请求接口的问题,而且这是你根本看不出来的。
如果使用了第三方的API,切记要把这个API的地址加入到【request 合法域名】中。有一次我在使用百度地图小程序API的时候,就遇到过这个问题。一调用接口就触发了失败回调,开始的是一直以为是定位权限的问题,因为在上面那几种不校验合法域名的情况下是正常的。后来只能把 fail 信息用 showModal 显示出来才知道是因为什么。