1

我想在用户尝试提交表单时发出 AJAX 请求。但是,我不想等待响应(我只想触发脚本)并且仍然立即提交表单(或重定向用户)。

我试图以这种方式(通过jQuery):

$(document).ready(function()
{
    $("#form").submit(function(e)
    {
        // save object reference
        var form = this;

        // prevent form submit
        e.preventDefault();

        // trigger ajax request
        $.ajax({
            url: 'ajax.php',
            data: { ... },
            cache: false
        });

        // submit form
        form.submit();

        // return false just in case
        return false; 
    });
});

但这不起作用,因为如果表单随后立即提交(通过) ,浏览器实际上不会发送 AJAX 请求。form.submit()

我在这里有点困惑......真的没有办法触发AJAX请求并在之后立即重定向浏览器吗?

4

1 回答 1

0

看来您在这里创建了一个无限循环。您正在阻止提交事件并在最后再次提交,但是当您将函数绑定到表单的提交时,它将被一遍又一遍地调用。相反,尝试使用成功和完成等 Ajax 状态;成功提交数据,完成后重定向页面。

于 2013-10-15T15:06:20.130 回答