如何使用Homestead实现React-Native-Expo对接Laravel API
解决Expo React Native访问Homestead Laravel API的网络错误问题
1. 确认Homestead虚拟机的IP地址
打开Homestead目录下的Homestead.yaml文件,找到ip字段(通常为192.168.10.10),记下该IP地址。
2. 调整Laravel的CORS配置
编辑Laravel项目根目录下的config/cors.php文件,修改以下配置项:
- 将
allowed_origins设为['*'](开发环境下允许所有来源,生产环境再限定具体域名) allowed_methods设为['*']allowed_headers设为['*']supports_credentials设为true
修改完成后,在Homestead虚拟机内执行php artisan config:cache刷新配置缓存。
3. 修改Expo应用的请求URL
把axios请求的https://mylaravelapp.test/api/movies替换为Homestead虚拟机IP+API路径,示例代码:
axios.get('http://192.168.10.10/api/movies') .then(response => console.log(response.data)) .catch(error => console.error(error));
注意:开发环境优先使用
http而非https,避免设备不信任Homestead自签名SSL证书导致的网络错误。
4. 确保设备与Homestead在同一网络环境
- 物理手机测试:手机需和运行Homestead的电脑连接同一个WiFi网络
- Android模拟器:可直接使用Homestead的IP,或用
10.0.2.2(模拟器内置的主机映射地址)替代Homestead IP - iOS模拟器:直接使用Homestead的IP即可
5. 验证Homestead的端口映射
检查Homestead.yaml的ports配置,确保主机的80/443端口已映射到虚拟机对应端口:
ports: - send: 80 to: 80 - send: 443 to: 443
若配置正确,也可通过主机的局域网IP访问API(比如主机IP为192.168.3.15,则请求http://192.168.3.15/api/movies)。
内容的提问来源于stack exchange,提问作者ST80
相关产品推荐
相关产品推荐

