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

标签 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 请求并立即重定向浏览器吗?

最佳答案

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

关于javascript - 在表单提交时执行ajax请求,不等待响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19383985/

相关文章:

javascript - 与 Firefox 相比,在 Chrome 中选择文本路径不会选择预期的文本

JavaScript:数据表服务器端处理 - 显示前更改值

javascript - 如何使用 jQuery AJAX 和 JSON 确认通过 Bootbox 提交的表单

jquery - 如何通过 iFrame 重新加载滚动父页面

javascript - 将 js 变量打印到另一个 js 文件中的 innerHTML 调用中

javascript - 使用 3 种方法创建一个 JavaScript 对象会抛出 Object has no method

javascript - HTML/CSS/JavaScript 是否定义代表系统主题颜色的常量?

jquery - 选择多个缓存元素

JavaScript anchor 导航

javascript - 如何为::after 内容制作动画?