提交表单时,AJAX用于重定向到外部域



我有一个表格,将数据提交到外部域:

<form action="https://EXTERNALdomain.com/register" id="form_register" method="POST">
  <input type="text" id="first-name" name="first-name" value="" placeholder="First Name" required/>
  <input type="text" id="last-name" name="last-name" value="" placeholder="Last Name" required/>
  <input type="email" id="email" value="" name="email" placeholder="Email Address" required/>
  <input type="password" id="password" name="password" placeholder="Password" required/>
  <input type="submit" value="Create Account" />
</form>

但是,我试图能够提交表单并将其重定向到另一个页面。到目前为止,我的尝试与Ajax没有成功。

<script type="text/javascript">
function sform() {
    $.ajax({
        url: "https://EXTERNALdomain.com/home",
        data: $('#request').serialize(),
        type: 'POST',
        success: function (resp) {
            alert(resp);
        },
        error: function(e) {
            alert('Error: '+e);
        }  
   });
}

然后,我一直在调用表格:

<form onsubmit="sform()" id="request">

这不起作用。我只有一个很长的URL,并且表格实际上没有发布,页面只是重新加载

这是因为您要让表单提交,它更改了页面URL并在此处发布数据。

从"提交表单并将其重定向到另一个页面"中,我假设您想将表格提交到https://externalnomain.com/register,然后重定向到https://externalnormain.com/home。为此,您需要使用$.ajax提交表格,他们更改成功的位置。

function sform() {
    $.ajax({
        url: $('#request').attr("action"),
        data: $('#request').serialize(),
        type: $('#request').attr("method"),
        success: function (resp) {
            location.href = "https://EXTERNALdomain.com/home"; // redirect
        },
        error: function(e) {
            alert('Error: '+e);
        }  
   });
   return false; // cancel default action
}

最新更新