在表单提交上执行ajax请求,不要等待响应

时间:2013-10-15 14:37:47

标签: javascript jquery ajax forms

我想在用户尝试提交表单时发出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; 
    });
});

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

我在这里有点困惑......是不是真的没有办法解雇AJAX请求并立即重定向浏览器?

1 个答案:

答案 0 :(得分:0)

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