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

Expo App出现TypeError: Network request failed错误求助

解决Expo iPhone测试时Network request failed问题及数据获取方法
  • 替换localhost为电脑局域网IP
    iPhone无法识别localhost,必须使用电脑在当前WiFi下的局域网IP(格式如192.168.x.x)。

    • 查看IP方式:Windows执行ipconfig找到无线局域网适配器的IPv4地址;Mac/Linux执行ifconfig或ip addr查看en0对应的inet地址。
    • 前端请求地址需改为http://你的局域网IP:3000/、http://你的局域网IP:3000/firstPage,而非localhost:3000。
  • 确保服务器绑定0.0.0.0
    后端服务器不能只绑定localhost,否则仅本机可访问,需改为0.0.0.0以接收局域网设备请求。示例Express监听代码:

    app.listen(3000, '0.0.0.0', () => {
      console.log('服务器运行在0.0.0.0:3000');
    });
    
  • 验证/firstPage路由有效性
    先在电脑浏览器用局域网IP访问http://你的IP:3000/firstPage,确认是否返回正确JSON:

    • 若浏览器也无法获取,检查路由定义是否正确(如是否为app.get("/firstPage", ...))、SQL查询逻辑是否报错、是否调用res.json()返回数据。
    • 带SQL查询的/firstPage路由示例:
      app.get("/firstPage", async (req, res) => {
        try {
          const [rows] = await connection.query('SELECT * FROM your_table');
          res.json({data: rows, message: '查询成功'});
        } catch (err) {
          console.error('SQL查询错误:', err);
          res.status(500).json({error: '服务器内部错误'});
        }
      });
      
  • 检查电脑防火墙设置
    暂时关闭防火墙测试,或在防火墙规则中添加允许3000端口入站请求的权限,避免端口被拦截。

  • 配置Expo iOS网络权限
    在app.json中添加HTTP请求允许配置,iOS默认限制非HTTPS请求:

    "ios": {
      "infoPlist": {
        "NSAppTransportSecurity": {
          "NSAllowsArbitraryLoads": true
        }
      }
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 12:30:43