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

Docker环境下React代理Node后端接口出现proxy请求报错问题咨询

问题根因与修复方案

1. 核心错误:代理目标端口配置错误

你在后端docker-compose.yml中配置的端口映射33445:8080仅适用于宿主机访问容器的场景。当两个容器同属一个Docker网络时,通过容器名直接通信需使用容器内部暴露的端口,也就是8080,而非宿主机映射的33445,这是代理报错的主要原因。

2. 代理配置缺失必要参数

http-proxy-middleware默认不会修改请求头的Host字段,部分Node服务会因为Host不匹配拒绝请求,需要显式开启changeOrigin: true。另外你配置的路径匹配规则/api/*仅能匹配/api下的一级路径,建议修改为/api匹配所有以/api开头的请求,兼容性更强。

3. (后续获取httpOnly Cookie必备配置)

fetch请求默认不会携带、接收Cookie,需要在请求配置中新增credentials: 'include'参数。


修复后的配置示例

前端代理配置

const { createProxyMiddleware } = require("http-proxy-middleware");

module.exports = function (app) {
  app.use(
    "/api",
    createProxyMiddleware({ 
      target: "http://nodebackend:8080",
      changeOrigin: true
    })
  );
};

登录请求调整

const requestOptions = {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({ email: "test@test.com", password: "test" }),
  credentials: 'include' // 允许携带、接收Cookie
};

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 23:36:01