gpt4 book ai didi

html - 无法从 HTML 访问 docker-compose 的其他服务

转载 作者:行者123 更新时间:2023-12-02 21:11:13 25 4
gpt4 key购买 nike

我想通过 docker-compose 连接两个服务。其中一个是由 Apache 提供的一个 HTML 文件,另一个是去服务器,它只是记录请求并返回 200,成功。我不知道在 <form> 中写 Action 链接的正确方法是什么标签。

我将我的图像命名为前端和服务器以及签名操作属性为 http://server:8080/user/add .

这是我的表格:

<form action="http://server:8080/user/add" method="post">
Name: <input name="name"><br>
Sname: <input name="sname"><br>
Email: <input type="email" name="email"><br>
<button type="submit"></button>
</form>

docker-compose.yml:
version: "3"
services:
server:
image: server
frontend:
image: frontend
ports:
- '8080:80'

服务器按预期工作(如果在本地运行) curl -d "name=name&sname=sname&email=email" -X POST http://localhost:8080/user/add
但是点击按钮后,浏览器将我重定向到 server:8080 并告诉我找不到该页面。

在我的情况下,链接服务的正确方法是什么?

最佳答案

当您从 docker 上运行的 apache 提供 html 文件时,它将在您的浏览器(您的主机)上呈现。所以当你完成表单并发布时,浏览器会将数据发送到http://server:8080/user/add这是不可公开访问的,我看到您不想直接公开它。如果您想从您的 frontend 发送数据服务器,您需要向前端应用程序添加一些后端功能,以处理客户端将发送的响应数据(因为浏览器是发送表单的,而不是您的 frontend )。
总结一下,如果你不暴露你的 server为了便于访问,您需要添加其他内容来处理客户端发送的数据,然后将其发送到您的服务器。

关于html - 无法从 HTML 访问 docker-compose 的其他服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54506998/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com