Javascript 处理多个ajax请求仅在收到警报时有效

Javascript 处理多个ajax请求仅在收到警报时有效,javascript,jquery,ajax,jquery-nestable,Javascript,Jquery,Ajax,Jquery Nestable,我试图从一个页面中的许多列表向服务器发送数据,每个列表都触发ajax数据供PHP进一步处理。我的代码使用(class=dd)选择每个列表,并逐个发送ajax数据。当我在ajax成功后使用alert(response)时,这非常有效,删除此警报消息只会向服务器发送较少的列表(4个列表中只发送2个)。有什么想法吗 $('#submit_sorting').on('click', function() { var testEmail = /^[A-Z0-9._%+-]+@([A-Z0

我试图从一个页面中的许多列表向服务器发送数据,每个列表都触发ajax数据供PHP进一步处理。我的代码使用(class=dd)选择每个列表,并逐个发送ajax数据。当我在ajax成功后使用alert(response)时,这非常有效,删除此警报消息只会向服务器发送较少的列表(4个列表中只发送2个)。有什么想法吗

 $('#submit_sorting').on('click', function() {
        var testEmail = /^[A-Z0-9._%+-]+@([A-Z0-9-]+\.)+[A-Z]{2,4}$/i;
        if (testEmail.test($('#user_email').val()) || $('#user_email').val()==""){
            $('[class=dd]').each(function(){
                     var data = $(this).nestable('serialize');
                     var dataJson = JSON.stringify(data);
                     console.log('sent '+JSON.stringify(data));
                     var response = ajaxx(data);
                     alert(response);
                });  
        }
        else
        {
            alert('enter valid email address');
        }

    });
下面是ajax代码

  function ajaxx(data){
          return $.ajax({
            type: "POST", 
             url: 'cardsorting/update',
            data: {
                'new_order': data,
                'user_comments':$('#user_comments').val(),
                'user_email':$('#user_email').val(),
                '_token':$('meta[name="_token"]').attr('content')
            }, 
           success: function(data){
              if(data=='dataissaved'){
                  console.log('came here '+$(location).attr('href'));
              }
             else
             {
                  console.log('received '+JSON.stringify(data));

              }

        },
           error: function (data) {
                alert('Could not connect to controller');
            }
        });
    }

下面是它最终的工作原理,我没有为每个选择发送多个ajax请求,而是将它们收集到一个数组中,然后将其ajax到后端php

$('#submit_sorting').on('click', function() {
    var sorting_array = new Array();
    var testEmail = /^[A-Z0-9._%+-]+@([A-Z0-9-]+\.)+[A-Z]{2,4}$/i;
    var flag = false;
    if (testEmail.test($('#user_email').val()) || $('#user_email').val()==""){
           $('[class=dd]').each(function(){
                 var data = $(this).nestable('serialize');
                 sorting_array.push(data);
                 console.log('sent '+JSON.stringify(data));               
            }); 
            flag = true;
        }
    else
    {
        alert('enter valid email address');
    }
    if(flag){
        ajaxx(sorting_array);
        console.log(JSON.stringify(sorting_array)); 
    }

});

试试这个$.ajax({…async:false});$。ajax是异步的。。。了解如何编写异步代码,它说的
async:false
总是有效的,它在firefox和chrome中已经被弃用了好几个月了为什么不在“cardsorting/update”处理程序中发送数组和进程中的所有数据?