Dockerized React 应用程序 axios req 到后端不起作用
Dockerized React app axios req to Backend doesn't work
我有 2 个容器:
- nginx(服务于 React 应用程序)
- 节点
两者都在同一个 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
还要确保您的节点服务器是 运行。
我有 2 个容器:
- nginx(服务于 React 应用程序)
- 节点
两者都在同一个 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
还要确保您的节点服务器是 运行。