Dockerized React 应用程序 axios req 到后端不起作用

Dockerized React app axios req to Backend doesn't work

我有 2 个容器:

两者都在同一个 docker-compose 文件中。

当我 运行 它在本地时('npm start' 用于 React 和节点 index.js 用于后端) 它们工作正常(后端接收请求)-但是当它们都在容器中时,出现问题..

** 当我执行 nginx 容器时 - 它确实识别 http://server:5000/ 端点(使用 curl)

docker-compose.yaml

version: "3.8"
services:
    server:
        build:
            context: ./server
        ports:
            - "5000:5000"
        networks:
          - frontend
    nginx:
        build:
            context: ./app
        restart: always
        ports:
            - "80:80"
        networks:
          - frontend
          
networks:
  frontend:

在前端请求部分

async function sendMsg(...order){
    await axios.put('http://server:5000/msg', order)
}

在后端接收部分

app.put('/msg', (req, res) => {
  console.log(req.body)
}

问题是您的 React 应用程序由您的容器提供服务,但在您的浏览器中执行。

您的浏览器不知道“服务器”指的是什么。

尝试将 http://server:5000/msg 更改为 http://localhost:5000/msg

还要确保您的节点服务器是 运行。