JQuery AJAX async false无法在Chrome上运行

时间:2017-02-12 13:03:24

标签: javascript jquery ajax

我正在为服务器逐个编写表单数据发送列表的jQuery。

它完全适用于Firefox,但当我使用chrome时,它会立即发送所有数据

这是我的代码

    $('.frmroldcon').each(function(){       
                var thobj=this;         
                $(thobj).prev().prev().prev('.failedicoconold').hide();
                $(thobj).prev('.doneicoconold').hide();
                $(thobj).prev().prev('.proccesicoconold').show();

                fuser = jQuery('input[name="fusername"]',thobj).val();
                fpass = jQuery('input[name="fpassword"]',thobj).val();


                  $.ajax({
           type: "POST",
           async: false,
           cache:false,
           url: "checkcon.php",
           data: { checkcons: "1", fusername: fuser, fpassword: fpass},
           success: function(data){
                $(thobj).prev().prev('.proccesicoconold').hide();
                              if(data==0){
                                 $(thobj).prev().prev().prev('.failedicoconold').show();
                                  window.errc=window.errc+1;
                              }
                              else{
                                  $(thobj).prev('.doneicoconold').show();

 }                        

           }
              });                               
            });

我正在使用jQuery版本2.1.4,也尝试过其他旧版本,如1.4但似乎无效。

任何人都可以为此提供解决方案,或者将每个表单数据逐个提交给服务器,

非常感谢

1 个答案:

答案 0 :(得分:1)

使用jQuery $.when

进行串行,异步,ajax请求的快捷方法
var requests = [];

$('.frmroldcon').each(function() {
    $.when.apply($,requests).then(function() {
       requests.push($.ajax({/* your ajax request */});
    });
});

但是,您还没有要求必须按顺序执行这些请求。如果您可以通过1次调用服务器而不是60次来完成所需的一切,那就是您应该采用的方式。