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

React Native的Axios post请求iOS模拟器正常但iPhone真机失败如何解决

故障原因及修复方案

1. 地址配置错误(最高概率)

你当前使用的请求地址为http://localhost:8080,localhost指代的是运行代码的设备本身:

  • iOS模拟器运行在开发电脑上,此时localhost指向电脑本地启动的后端服务,因此请求正常;
  • iPhone真机运行时,localhost指向手机自身,手机上没有部署对应的后端服务,因此直接请求失败。
    修复方案:将请求地址中的localhost替换为开发电脑的局域网IP,示例如下:
const response = await axios.post('http://192.168.x.x:8080/api/v1/auth/register', { email: email, password: password });

需确保手机和电脑连接同一个WiFi网络。

2. iOS ATS安全策略拦截

iOS系统默认的App传输安全(ATS)规则禁止所有未加密的HTTP请求,仅HTTPS请求默认允许通行,模拟器调试阶段可能因为开发配置豁免了该限制,但真机运行时会严格执行规则拦截请求。
修复方案:在项目的Info.plist文件中添加ATS配置,临时允许HTTP请求(生产环境建议切换为HTTPS,关闭该配置):

<key>NSAppTransportSecurity</key>
<dict>
  <key>NSAllowsArbitraryLoads</key>
  <true/>
</dict>

3. 局域网连通性问题

  • 手机和电脑未连接同一局域网,或路由器开启了AP隔离,导致手机无法访问电脑本地的后端服务;
  • 后端服务仅绑定了127.0.0.1地址,未绑定0.0.0.0,不允许局域网其他设备访问;
  • 电脑防火墙拦截了8080端口的入站请求。
    修复方案:
  • 确认手机和电脑连接同一WiFi,关闭路由器AP隔离;
  • 调整后端服务启动配置,绑定0.0.0.0地址;
  • 关闭电脑防火墙,或者添加8080端口的入站规则;
  • 可以先在iPhone自带的Safari浏览器中直接输入替换了IP的接口地址,验证是否可以正常访问,排除连通性问题。

内容的提问来源于stack exchange,提问作者help for me

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 09:24:04