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

Expo构建React Native APK后请求服务器报AxiosError: Network Error求助

解决Expo打包APK后Axios请求Network Error问题

下面是针对你遇到的问题的排查和解决步骤:

1. 修正请求头配置

你在Axios请求里添加的Access-Control-Allow-Origin、Access-Control-Allow-Headers、Access-Control-Allow-Methods属于服务器响应头,不是客户端请求头,客户端发送这些头毫无意义,反而可能干扰请求。先把这些多余的头删掉,修改后的请求代码:

await axios.post('http://xx.xxx.xxx.xxx:3000/api/reg', reg_data, {
    headers: { 
        'Accept': 'application/json',
        'Content-Type': 'application/json; charset=utf-8'
    }
})
    .then(async(response) => {
        result = {id: response.data.id, error: false}
    })
    .catch(async error => {
        result = {id: false, error}
    })

2. 确认服务器的可访问性

  • 开发阶段你可能用的是局域网IP(比如192.168.x.x),但打包成APK后,手机如果不在同一局域网,或者服务器没有公网IP,就无法连接。确保你的服务器有公网可访问的IP/域名,并且端口3000已经在防火墙/云服务商控制台开放。
  • 直接在手机浏览器里访问http://xx.xxx.xxx.xxx:3000/api/reg(GET方式),看是否能正常返回内容,排除网络层面的问题。

3. 处理Android明文HTTP限制

Android 9(API 28)及以上默认禁止明文HTTP请求,只允许HTTPS。如果你的服务器用的是HTTP,需要配置网络安全策略:
在Expo项目的app.json中添加以下配置:

{
  "expo": {
    "android": {
      "networkSecurityConfig": {
        "domainConfigs": [
          {
            "domain": "xx.xxx.xxx.xxx",
            "cleartextTrafficPermitted": true
          }
        ]
      }
    }
  }
}

把xx.xxx.xxx.xxx替换成你的服务器IP或域名,这样就能允许该域名的明文HTTP请求。

4. 检查服务器的CORS配置

虽然Postman测试正常,但Postman不受浏览器CORS限制,需要确保Express服务器的CORS配置正确。可以用cors中间件:

const express = require('express');
const cors = require('cors');
const app = express();

// 允许所有来源的请求,生产环境建议限制特定域名
app.use(cors());

// 或者更精细的配置
app.use(cors({
  origin: '*',
  methods: ['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS'],
  allowedHeaders: ['Content-Type', 'Authorization']
}));

确保服务器已经正确配置CORS,否则手机端请求会被拦截。

5. 排查Axios其他配置问题

  • 检查是否设置了合理的timeout,比如timeout: 10000,避免请求超时被判定为网络错误。
  • 确认没有配置开发环境的代理,打包后代理配置会失效,直接使用真实服务器地址。

如果以上步骤都试过还是有问题,可以补充以下信息:

  • 服务器的公网IP/域名是否正确
  • 手机是否能ping通服务器IP
  • 错误日志的详细信息(比如error.message、error.code)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 06:15:13