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

Node.js与React Native Expo中Axios网络错误求助(Postman测试正常)

解决Expo Android设备调用Node/Express API的Axios网络错误问题

核心排查方向及修复步骤

  • 替换正确的服务器地址
    10.0.2.2仅适用于Android模拟器对本地主机的映射,若使用物理Android设备,必须替换为电脑的局域网IP地址:

    • Windows:打开命令提示符执行ipconfig,查看无线网卡的IPv4地址(如192.168.1.100)
    • Mac/Linux:打开终端执行ifconfig或ip addr,查找对应网卡的inet地址
    • 修改Axios请求地址为http://你的局域网IP:5000/register
  • 确保Express服务器允许局域网访问
    检查服务器启动代码,监听地址必须设为0.0.0.0而非localhost,否则仅本地能访问:

    // 正确写法
    app.listen(5000, '0.0.0.0', () => {
      console.log('Server running on port 5000');
    });
    
  • 关闭或配置电脑防火墙
    电脑防火墙可能拦截5000端口的局域网请求:

    • 临时关闭防火墙测试是否能正常请求
    • 若测试有效,在防火墙规则中添加允许5000端口的入站规则
  • 修正Axios代码的错误用法
    原代码中await response.json()是Fetch API的用法,Axios已自动解析响应体,这行代码会导致额外错误,修正后的代码:

    try {
      const userdata = { username, email, password };
      const response = await axios.post("http://你的局域网IP:5000/register", userdata);
      
      console.log("Registration data :", response.data);
      console.log(response.data.message);
      navigation.navigate("Home");
    } catch (error) {
      console.error("Register error: ", error.response?.data || error.message);
    }
    
  • 确认Expo应用的网络权限
    Expo默认会在AndroidManifest.xml中添加INTERNET权限,若手动修改过配置,确保存在以下权限声明:

    <uses-permission android:name="android.permission.INTERNET" />
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 06:03:26