如何 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。

有两种方法可以做到这一点:

  1. 使用 Ajax 提交表单,成功后,从 Javascript
  2. 重定向
  3. 正常提交表单,服务器发送重定向响应,新 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 答案: