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

真实iOS设备调用本地localhost Node.js API时出现连接故障

解决真实iOS设备无法访问本地Node.js API的问题

核心原因

iOS设备上的localhost指向设备自身,而非你的开发电脑,这就是为什么Android设备和模拟器能正常访问,但真实iOS设备会出现连接问题。

解决步骤

  • 获取电脑的局域网IP

    • Mac用户:打开终端执行 ifconfig,找到en0网卡下的inet字段(格式类似192.168.1.100)
    • Windows用户:打开命令提示符执行 ipconfig,找到“无线局域网适配器WLAN”下的IPv4地址
  • 修改API请求地址
    把代码里所有http://localhost:端口号替换成http://你的局域网IP:端口号,比如原来的http://localhost:3000/user改成http://192.168.1.100:3000/user

  • 确保Node服务器监听局域网请求
    启动服务器的代码里,把监听地址设为0.0.0.0,这样服务器能接收局域网内所有设备的请求:

    app.listen(3000, '0.0.0.0', () => {
      console.log('服务器运行在 http://0.0.0.0:3000');
    });
    
  • 绕过iOS的HTTP安全限制(开发环境)
    iOS默认禁止非HTTPS的网络请求,需要在项目的Info.plist中添加配置:
    右键Info.plist选择“Open As -> Source Code”,添加以下代码(替换成你的局域网IP):

    <key>NSAppTransportSecurity</key>
    <dict>
        <key>NSExceptionDomains</key>
        <dict>
            <key>192.168.1.100</key>
            <dict>
                <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
                <true/>
            </dict>
        </dict>
    </dict>
    

    注意:上线前一定要移除这个配置,改用HTTPS。

  • 检查电脑防火墙
    确保你的电脑防火墙允许Node.js使用的端口(比如3000)接收来自局域网的连接,否则iOS设备的请求会被拦截。

内容的提问来源于stack exchange,提问作者Atif Ahmad

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 19:35:37