【问题标题】:What causes the user to go to new a page when they submit a form, and can it be done in JavaScript?是什么导致用户在提交表单时转到新页面,可以在 JavaScript 中完成吗?
【发布时间】:2026-01-20 06:15:02
【问题描述】:

您在表单上提供actionmethod 属性,然后在提交时,它使用action 中指定的URL 完成HTTP method。最终结果将用户带到一个新页面,该页面由服务器返回以响应对该目标 URL 的 POST(或其他)。

什么导致这个重定向?它是 HTML 表单元素如何工作的固有属性,还是只是 HTTP 响应中的重定向标头?

我正在尝试使用 ajax POST 重现该效果,无需只需手动编写一行 JS 来进行重定向~我希望它自动发生,同样的方式。

提交表单与访问 url www.myHostDomain.com/mySpecifiedFormAction?myFirstFormField=myFirstFormValue&mySecondFormField=mySecondFormValue 基本相同吗?

这不可能,因为浏览器栏总是一个 GET 请求。

【问题讨论】:

  • 你在说哪个重定向? ... POST 和 GET 之间的区别在于 POST 的 URL 和正文中都可以包含数据,GET 在 URL 中包含数据
  • @LGSon - 我相信 OP 想知道为什么服务器无法从 AJAX 请求重定向
  • 一般情况下,重定向会在服务器端处理。后端实际处理提交的数据是什么?
  • 当您提交 HTML 表单时,您将被带到一个新页面:浏览器实际上呈现来自服务器的响应。是什么导致自动发生的?如果有的话,我想答案将在 HTML 表单规范中。
  • 如果你看看这里你会看到它是如何工作的/看起来:developer.mozilla.org/en-US/docs/Web/Guide/HTML/Forms/…

标签: html ajax http forms http-redirect


【解决方案1】:

Form 的 action 属性起到导航 URL 的作用,也就是“plan to navigate”。 target 属性定义加载服务器返回的响应的位置。

是的,这是“HTML 表单元素如何工作的内在属性”。

处理表单提交的算法在 HTML4 和HTML5 forms 规范中定义。

提交表单本质上是一个普通的 URL 导航(通过 <a href> 元素),但会自动收集参数,这些参数可以作为参数 (<form method="get">) 或作为请求正文参数 (<form method="post">) 进入最终导航 URL。

【讨论】:

  • 最后,一个很好的参考答案,而不仅仅是 asinine cmets 告诉我自己弄清楚。谢谢!
最近更新 更多