Html 处理提交的CORS表格

Html 处理提交的CORS表格,html,forms,go,Html,Forms,Go,我有一个来自localhost的非常简单的表单:3000 <form id="my-HTML-form" action="http://localhost:8080" method="POST"> <input type="text" placeholder="Username" name="username" /> <input type="password" placeholder="Password" name="password" />

我有一个来自localhost的非常简单的表单:3000

<form id="my-HTML-form" action="http://localhost:8080" method="POST">
    <input type="text" placeholder="Username" name="username" />
    <input type="password" placeholder="Password" name="password" />
    <input type="hidden" name="form-id" value="login" />
    <button type="submit">Submit</button>
</form>
当我提交表格时,我实际上收到了两个请求!一个职位和一个得到!在一次提交后,这里是我的控制台:

$ http://localhost:3000
$ POST
$ 
$ GET
请注意,GET请求没有附加原点。我试图执行一些逻辑,然后根据成功或失败将用户重定向到不同的url。但是我不能这样做,因为GET请求紧跟POST请求之后。我可以使用AJAX,没问题,但我希望找到一个简单html表单提交的解决方案

有什么想法吗?是否所有浏览器都遵循这种模式,而我是索尔


谢谢。

我假定您的表单操作是
action=”http://localhost:8080“
因为您说过这是一个跨来源请求

第二个GET请求是对favicon的请求(正如elithrar在评论中指出的)。只需执行
log.Println(r.URL)
即可确保。我不知道为什么浏览器没有添加原始标题

您可以通过替换
w.WriteHeader(http.StatusOK)
重定向请求,例如,
http.Redirect(w,r,“http://localhost:3000/success.html“,http.StatusSeeOther)

您是否在同一服务器上发布?我在这里没有看到跨原产地请求。GET很可能是请求
/favicon.ico
的浏览器-如果您记录完整请求,您将看到路径。@elithrar非常感谢。这是正确的。我的服务器中有其他逻辑,因为第二个请求是favicon的GET请求(r.URL=“/favicon.ico”),并且由于某些原因没有包含origin头,所以我发送了一个401。我现在正在检查favicon的r.URL,只需在处理函数中调用“return”——不是200、401或任何其他代码,就可以了。非常感谢。这是正确的。我的服务器中有其他逻辑,因为第二个请求是favicon的GET请求(r.URL=“/favicon.ico”),并且由于某些原因没有包含origin头,所以我发送了一个401。我现在正在检查favicon的r.URL,并在处理程序函数中简单地调用“return”——而不是200、401或任何其他代码,它正在工作。
$ http://localhost:3000
$ POST
$ 
$ GET