React Native Expo应用对接Open Server Panel后端出现网络错误,需调整哪些面板设置?
看起来你遇到的是本地开发环境中React Native和Open Server对接的常见网络问题,我帮你梳理几个关键排查点和调整方案:
先修正一个小细节:你提到的
http://{127.0.0.0}是无效的本地地址,正确的本地回环地址是127.0.0.1,不过这个应该不是导致当前问题的核心,但后续测试时要注意用正确地址。HTTPS自签名证书信任问题(最可能的原因)
浏览器会主动提示你信任本地自签名证书,但React Native/Expo应用默认不会信任这类非权威机构颁发的证书,所以发起HTTPS请求时会直接触发网络错误。
解决办法:- 临时方案:先在Open Server面板把stars.local的站点改成HTTP模式(取消HTTPS勾选),然后用
http://stars.local/stars.php测试请求,看是否能正常访问。 - 长期方案:如果必须用HTTPS,需要把Open Server的本地证书导入到React Native项目中,或者在Expo的配置里添加证书信任规则。
- 临时方案:先在Open Server面板把stars.local的站点改成HTTP模式(取消HTTPS勾选),然后用
本地网络访问的地址适配问题
如果你是用真机测试,或者Android模拟器,直接用stars.local或者错误的IP可能会有问题:- 对于Android模拟器:不能用
127.0.0.1,需要用10.0.2.2来映射电脑的localhost;如果是真机,要确保手机和电脑在同一个局域网,然后用电脑的局域网IP(比如192.168.x.x)替代stars.local。 - 检查你之前替换的服务器IP是不是电脑的局域网IP,而不是公网IP或无效地址。
- 对于Android模拟器:不能用
Open Server的跨域(CORS)配置
虽然浏览器能正常打开链接,但React Native的HTTP请求会严格遵循CORS规则,可能Open Server默认没有配置允许跨域请求:
你可以在Open Server面板找到站点的配置文件(比如Apache的.htaccess或者Nginx的配置),添加CORS允许规则:# Apache示例 Header set Access-Control-Allow-Origin "*" Header set Access-Control-Allow-Methods "GET, POST, OPTIONS" Header set Access-Control-Allow-Headers "Content-Type"或者在Open Server的站点设置里找是否有一键开启CORS的选项。
防火墙和端口监听检查
确认电脑的防火墙没有拦截Open Server的80/443端口,同时在Open Server面板里检查stars.local站点是否正常启动,监听的端口是否正确(HTTP默认80,HTTPS默认443),没有被其他服务占用。Expo应用的网络权限配置
检查你的Expo项目的app.json(或app.config.js)里是否配置了正确的网络权限:- 对于iOS:确保
NSAppTransportSecurity配置允许访问你的本地域名,或者暂时添加NSAllowsArbitraryLoads(仅开发环境使用):"ios": { "infoPlist": { "NSAppTransportSecurity": { "NSAllowsArbitraryLoads": true } } } - 对于Android:确保
AndroidManifest.xml里有<uses-permission android:name="android.permission.INTERNET" />权限(Expo默认会添加,但可以确认一下)。
- 对于iOS:确保
备注:内容来源于stack exchange,提问作者Vido

