在ajax跨域上传多个图像

时间:2016-05-18 07:10:10

标签: php jquery ajax

我使用Ajax和php上传多个图像跨域。 我在Ajax调用之前设置了加载器 一切都很好但是当我选择多个图像上传时,加载程序会在很长时间之后出现。

以下是我的代码

 $('#load-div').css('display', 'block'); 
    var data = new FormData();
    var c = 0;
    var files = new Array(); 

    $.each($('#file')[c].files, function(i, file) {
        data.append('files'+i, file);
        c++;
    });

    var other_data = $('#frmaddproperty').serializeArray();
    $.each(other_data, function(key, input){
        data.append(input.name, input.value);
    });

    $.ajax({
        type: 'POST',
        url: 'Coss domain url',
        crossDomain: true,
        async: false,  

cache: false,
            contentType: false,
            processData: false,
            data:data,

            success: function(response){


            console.log(response);
            window.location = 'property_list.php?msg='+response;


            },
            error: function(){                      
                //alert('Error while request..');
            },
        });

上面是我的代码我在Div id load-div中设置了加载器。 它是在我上传多张图片后非常大的延迟时间之后发生的。 不知道该怎么办。 在此先感谢。

2 个答案:

答案 0 :(得分:0)

您可以使用" ajaxStart()"。
https://api.jquery.com/ajaxStart/

当您的通话开始时,它将启动加载程序。

$( document ).ajaxStart(function() {
  $('#load-div').css('display', 'block'); 
});

<强>更新

您也可以使用&#34; beforeSend&#34;。

$.ajax({
    url: '',
    beforeSend: function() {
    $('#load-div').css('display', 'block');
},

详细了解您的选择:
http://api.jquery.com/jquery.ajax/

<强>更新

我猜这个循环正在延迟 尝试将装载机放入其中。
或者你需要给我们更多的代码,以弄清楚延迟的原因!

$.each($('#file')[c].files, function(i, file) {
  $('#load-div').css('display', 'block'); 
  data.append('files'+i, file);
  c++;
});

答案 1 :(得分:0)

async: false,

我已经从我的ajax调用中移除了这一行,并且加载器工作正常。 这是什么意思我不知道