You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native在夜神模拟器中调用Laravel后端API始终返回网络错误问题排查

React Native在夜神模拟器中调用Laravel后端API始终返回网络错误问题排查

兄弟,我之前踩过几乎一模一样的坑,结合你的描述给你几个最可能的排查方向,按顺序试应该能解决:

1. 最核心的问题:模拟器的127.0.0.1≠主机的本地IP

夜神模拟器本质是一个独立的虚拟机,它的127.0.0.1指向的是模拟器自身的回环地址,不是你运行Laravel的电脑主机!这就是为什么Chrome(在主机上)能访问,但模拟器里的React Native不行的根本原因。

解决步骤:

  • 先找到你电脑的局域网IP:
    • Windows:打开命令提示符,输入ipconfig,找「以太网适配器 本地连接」或「WLAN」下的「IPv4地址」,比如192.168.3.105
    • Mac/Linux:打开终端,输入ifconfig或ip addr,找对应网卡的inet地址
  • 重启Laravel服务时绑定到这个局域网IP:
    php artisan serve --host 你的局域网IP --port=8010
    
  • 把React Native里的API地址改成http://你的局域网IP:8010/api/user

2. 验证网络连通性:先在模拟器浏览器里测

修改完地址后,先打开夜神模拟器自带的浏览器,输入这个API地址,如果能正常返回JSON,说明网络通了,问题出在React Native的代码;如果还是打不开,继续排查:

  • 检查电脑防火墙是否放行8010端口,临时关闭防火墙测试一下
  • 确保电脑和夜神模拟器在同一个局域网(比如连同一个WiFi)

3. Laravel的CORS跨域配置(次要但可能踩坑)

如果模拟器浏览器能访问,但React Native还是报网络错误,大概率是跨域问题。Laravel 10的CORS配置在config/cors.php里:

  • 临时把allowed_origins改成['*']测试:
    'allowed_origins' => ['*'],
    
  • 测试没问题后,再改成更严格的配置(比如模拟器的源地址)

4. 服务绑定范围的问题

如果你不想每次都查局域网IP,可以把Laravel服务绑定到0.0.0.0(允许所有地址访问):

php artisan serve --host 0.0.0.0 --port=8010

然后用主机的局域网IP访问即可,效果和绑定具体IP一样。

备注:内容来源于stack exchange,提问作者Tom Kur

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 14:59:28