问题引入

  在使用uniapp开发微信小程序时,开发者工具的模拟器可以正常请求。但是当使用真机调试时会发现,请求已发起,但是控制台一片空白。

过了一会儿就会报错,请求超时。

摸索过程

检查代码和网络连接都正常,当然也勾选了不校验合法域名。

网上搜了半天,没发现相同的问题。

手足无措之时,将手机网络切换成电脑相同的wifi,重新运行,竟然可以了。

然后又让手机连接电脑开的热点,也顺利请求。

问题原因

显然,只有手机和电脑处于局域网才能顺利请求。

然后去微信小程序开发文档找到了这么一段话:

总结一下就是,由于微信小程序限制了非局域网环境下的真机调试请求,只允许通过同一个局域网内进行网络请求。这意味着非局域网环境下只能通过域名形式的网址来调用微信小程序,而不是通过IP地址。因此,在进行真机调试时,我们需要将服务器配置成可解析外部域名的形式才能正常工作。

问题就出在请求URL上面,我使用了IP类型的URL。

然而这个服务器的IP和手机并不在局域网里面,所以请求被拦截了。

解决方法

1. 确保手机电脑位于局域网之下,只有这样才能使用IP类型的URL。

2.如果手机电脑不在局域网之下,则请求URL只能使用域名的形式。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐