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

React部署后向Node.js后端发POST请求报net::ERR_CONNECTION_TIMED_OUT如何解决?

问题根因
  • 192.168.0.0/16是私网保留地址段,仅能在局域网内部路由,公网环境下无法直接访问。你当前的Axios配置把请求地址写死为内网IP,公网用户打开前端后,浏览器会在公网环境请求该内网地址,自然无法连通,返回超时错误。
  • 你仅做了前端服务的公网映射,后端3010端口没有对外暴露,公网环境没有路径可以访问到你的Node.js后端服务。
  • 额外说明:你当前遇到的是网络连通性错误,和CORS配置无关,CORS错误不会返回连接超时的报错。
解决方案

1. 修正Axios基础地址配置

修改axios实例的baseURL,不要写死内网IP,两种可选配置:

  • 如果后端用独立端口暴露,改为公网可访问的地址:axiosInstance.defaults.baseURL = "http://app.testSetup.de:3010"
  • 如果后端和前端共用域名通过路径区分,改为相对路径前缀:axiosInstance.defaults.baseURL = "/api"

2. 暴露后端服务到公网,两种可选方案:

方案A:端口映射

在你的内网网关/路由器上做端口转发规则,将公网IP的3010端口流量转发到内网192.168.XX.XXX:3010,同时放开服务器防火墙、云服务商安全组(若用云服务器)的3010端口入站规则。

方案B:同域名反向代理(更推荐)

用你部署前端的反向代理服务(如Nginx)增加路径分流规则,将所有/api前缀的请求转发到内网http://192.168.XX.XXX:3010,示例Nginx配置参考:

location /api {
    proxy_pass http://192.168.XX.XXX:3010;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
}

该方案不需要额外暴露3010端口,也能天然避免跨域问题,无需额外配置CORS。

补充排查点
  • 确认Node.js后端启动时监听地址为0.0.0.0而非127.0.0.1,后者仅允许本机访问服务。
  • 确认React的package.json代理配置仅在本地开发环境生效,生产打包后不会生效,不要依赖该配置解决生产环境的请求转发问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 04:15:07