如何 post 表单提交到 URL 并在提交时重定向到另一个 URL
How to post form submission to a URL and redirect on submission to a different URL
我想 post 表单字段到 1 url 并重定向到另一个 url。我有 post 到我想要的 url 的代码,但是如何重定向到另一个代码?
URL 我想 post 提交给:www.mywebsite.com/submissions
URL 我想在提交时将用户重定向到:www.anotherwebsite.com/confirmation
这是我目前的情况:
<form action="https://mywebsite.com/submissions"
method="post">
First name: <input type="text" name="fname"><br>
Last name: <input type="text" name="lname"><br>
<input type="submit" value="Submit">
</form>
提交表单会将您重定向到目标 url。如果您想重定向到另一个位置,您可以使用 ajax 请求 post 表单。这不会将您重定向到任何地方。然后,当您收到来自 ajax 的响应时,您可以重定向到您想要的 url。
有两种方法可以做到这一点:
- 使用 Ajax 提交表单,成功后,从 Javascript
重定向
- 正常提交表单,服务器发送重定向响应,新 url
(2) 取决于您的服务器端语言 - PHP 或 Java.
您的后端语言或库中将提供某种重定向功能。它将发送一个带有备用 URL 的 HTTP 301 响应。浏览器将自动加载新提供的 URL。
编辑:
对于 (1),您可以处理按钮点击,防止默认行为,并通过 Ajax 手动 post 表单。完成后,您将重定向页面。
// this is the id of the form
$("#FormID").submit(function(e) {
e.preventDefault(); // avoid to execute the actual submit of the form.
var form = $(this);
var url = form.attr('action');
$.ajax({
type: "POST",
url: url,
data: form.serialize(), // serializes the form's elements.
success: function(data)
{
alert(data); // show response
window.location.href = "www.anotherwebsite.com/confirmation";
}
});
});
改编自这个 SO 答案:
我想 post 表单字段到 1 url 并重定向到另一个 url。我有 post 到我想要的 url 的代码,但是如何重定向到另一个代码? URL 我想 post 提交给:www.mywebsite.com/submissions URL 我想在提交时将用户重定向到:www.anotherwebsite.com/confirmation
这是我目前的情况:
<form action="https://mywebsite.com/submissions"
method="post">
First name: <input type="text" name="fname"><br>
Last name: <input type="text" name="lname"><br>
<input type="submit" value="Submit">
</form>
提交表单会将您重定向到目标 url。如果您想重定向到另一个位置,您可以使用 ajax 请求 post 表单。这不会将您重定向到任何地方。然后,当您收到来自 ajax 的响应时,您可以重定向到您想要的 url。
有两种方法可以做到这一点:
- 使用 Ajax 提交表单,成功后,从 Javascript 重定向
- 正常提交表单,服务器发送重定向响应,新 url
(2) 取决于您的服务器端语言 - PHP 或 Java.
您的后端语言或库中将提供某种重定向功能。它将发送一个带有备用 URL 的 HTTP 301 响应。浏览器将自动加载新提供的 URL。
编辑:
对于 (1),您可以处理按钮点击,防止默认行为,并通过 Ajax 手动 post 表单。完成后,您将重定向页面。
// this is the id of the form
$("#FormID").submit(function(e) {
e.preventDefault(); // avoid to execute the actual submit of the form.
var form = $(this);
var url = form.attr('action');
$.ajax({
type: "POST",
url: url,
data: form.serialize(), // serializes the form's elements.
success: function(data)
{
alert(data); // show response
window.location.href = "www.anotherwebsite.com/confirmation";
}
});
});
改编自这个 SO 答案: