jQuery在发送表单之前通过AJAX执行操作不起作用

jQuery在发送表单之前通过AJAX执行操作不起作用,jquery,ajax,preventdefault,Jquery,Ajax,Preventdefault,提交表单时,我需要通过AJAX将一些数据保存到数据库中,然后恢复表单的默认操作并将其提交给PayPal。 这样做后,数据成功保存在数据库中,但表单不会进一步提交 $('#saveBeforePay').on('submit', function(e){ e.preventDefault(); $.post('ajax/save-cart', $(this).serialize()) .done(function(response){ if ( respon

提交表单时,我需要通过AJAX将一些数据保存到数据库中,然后恢复表单的默认操作并将其提交给PayPal。 这样做后,数据成功保存在数据库中,但表单不会进一步提交

$('#saveBeforePay').on('submit', function(e){
    e.preventDefault();
    $.post('ajax/save-cart', $(this).serialize())
    .done(function(response){
        if ( response == 200 ) {
            return true;
        }
    });
});
我试过的另一种方法是

$('#saveBeforePay').on('submit', function(e){
    $.post('ajax/save-cart', $(this).serialize())
    .done(function(response){
        if ( response != 200 ) {
            e.preventDefault();
        }
    });
}); 
现在表单将提交,但数据不会保存到数据库中。我从“网络”选项卡获取此信息

请求标题警告:显示临时标题 而
状态文本
已取消

这里怎么了

编辑:工作代码

$('#saveOrder').on('click', function(e){
    e.preventDefault();
    var token = $('.token').val();
    $.post('ajax/save-cart', {token: token})
    .done(function(response){
        if ( response == 200 ) {
            $('#saveBeforePay').submit();
        }
    });
});

我通常在表单中使用锚定标记,并将初始事件绑定到锚定标记上,而不是将表单绑定到Submit上

$('a#submit').on('click', function () {
    $.post('foo', {}).done(function () {
         $(this).closest('form').trigger('submit');
    });

});

这样,您就不会阻止正常的表单执行,因此您可以在需要时调用submit事件。

没问题,很乐意提供帮助。记住将此标记为答案;)是的,当然,只需要等5分钟