是啥导致用户在提交表单时转到新页面,可以在 JavaScript 中完成吗?
Posted
技术标签:
【中文标题】是啥导致用户在提交表单时转到新页面,可以在 JavaScript 中完成吗?【英文标题】:What causes the user to go to new a page when they submit a form, and can it be done in JavaScript?是什么导致用户在提交表单时转到新页面,可以在 JavaScript 中完成吗? 【发布时间】:2016-10-27 07:44:40 【问题描述】:您在表单上提供action
和method
属性,然后在提交时,它使用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/… 【参考方案1】:Form 的 action
属性起到导航 URL 的作用,也就是“plan to navigate”。 target
属性定义加载服务器返回的响应的位置。
是的,这是“HTML 表单元素如何工作的内在属性”。
处理表单提交的算法在 HTML4 和HTML5 forms 规范中定义。
提交表单本质上是一个普通的 URL 导航(通过 <a href>
元素),但会自动收集参数,这些参数可以作为参数 (<form method="get">
) 或作为请求正文参数 (<form method="post">
) 进入最终导航 URL。
【讨论】:
最后,一个很好的参考答案,而不仅仅是 asinine cmets 告诉我自己弄清楚。谢谢!以上是关于是啥导致用户在提交表单时转到新页面,可以在 JavaScript 中完成吗?的主要内容,如果未能解决你的问题,请参考以下文章
当点击自定义 TableView 单元格中的 UITextField 时转到新视图