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

Javascript 在表单提交时执行ajax请求,不要等待响应,javascript,jquery,ajax,forms,Javascript,Jquery,Ajax,Forms,我想在用户尝试提交表单时发出AJAX请求。但是,我不想等待响应,我只想触发一个脚本,仍然立即提交表单或重定向用户 我试图通过jQuery以这种方式来实现: $(document).ready(function() { $("#form").submit(function(e) { // save object reference var form = this; // prevent form submit e.p

我想在用户尝试提交表单时发出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请求并立即重定向浏览器吗?

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

为什么说没有进行ajax调用?您的网络选项卡对请求有何评论?@Archer和tymeJV:FireFox开发工具的网络选项卡不报告任何发送的请求,服务器也没有收到任何这样的请求。如果您将form.submit注释掉,会发生什么情况?ajax调用会起作用吗?@Archer是的,ajax调用会起作用。的确,这看起来像是一个无限循环,尽管从来没有无限循环发生过。表单由form.submit in.submitFunction{…}提交;浏览器打开表单定义的动作。我不想在成功时提交表单,因为AJAX调用的成功与表单提交无关,但可能需要很长时间。我只想在提交表单之前,通过这个AJAX调用在服务器上触发一个脚本。这是我的目标;。最后,我创建了一个不同的解决方案,独立于表单提交。