Jquery 在一个数组中合并多个ajax响应

Jquery 在一个数组中合并多个ajax响应,jquery,ajax,response,Jquery,Ajax,Response,我已经在一个网站上实现了dropzone.js。当我在一个div中放置多个文件时,dropzone.js一次发送一个请求,这对php性能和文件上传限制都有好处 然而,它的缺点是,我无法找出如何捕获所有响应并将它们合并到单个数组中。在我的数组中,我只能保存最后一个响应的值 这是我的密码: $(“#dropzoneJs”).dropzone({ maxFiles:2000, 成功:函数(文件、响应){ var数组=[]; $.each(响应,函数(){ $。每个(此,函数(k,v){ v=响应。数据

我已经在一个网站上实现了dropzone.js。当我在一个div中放置多个文件时,dropzone.js一次发送一个请求,这对php性能和文件上传限制都有好处

然而,它的缺点是,我无法找出如何捕获所有响应并将它们合并到单个数组中。在我的数组中,我只能保存最后一个响应的值

这是我的密码:

$(“#dropzoneJs”).dropzone({
maxFiles:2000,
成功:函数(文件、响应){
var数组=[];
$.each(响应,函数(){
$。每个(此,函数(k,v){
v=响应。数据。图像;
控制台日志(v);
阵列推送(v);
});
});
var array1=JSON.stringify(数组);
$('#fdata').val(数组1);
}
});
我拖动了两个不同的文件,当我将两个响应保存在一个数组中时,我只得到该数组中的最后一个响应乘以两倍

["/images/aluguer/1.jpg","/images/aluguer/1.jpg"]
我需要的是:

["/images/aluguer/1.jpg","/images/aluguer/2.jpg"]
Console.log输出(不介意红色错误,它们不相关):


您需要在函数外部声明数组,否则每次使用时都是从空数组开始

var dropZoneArray = [];

$("#dropzoneJs").dropzone({
  maxFiles: 2000,
  success: function(file, response) {
    $.each(response, function() {
      $.each(this, function(k, v) {
        v = response.data.image;
        console.log(v);
        dropZoneArray.push(v);
      });
    });

    var array1 = JSON.stringify(dropZoneArray);
    $('#fdata').val(array1);
  }
});

内部循环看起来像是重复引用同一项:
response.data.image
。我知道
response
是一个迭代值,但我无法想象您会得到多个响应?不过我可能错了。您可以包含您的响应的一个片段吗?如果我使用console.log(v),它会写入2个不同的文件,但前缀是2,这意味着循环在每个映像中运行两次,并且只有最后一个响应的两次迭代保存在数组中。因此,我在数组中保存了两次相同的最后一个响应。如果您可以包含一个响应的外观片段,那么调试就容易多了。
v=response.data.image没有意义。至少,删除这一行。我用console.log屏幕截图更新了问题。谢谢。这就是问题所在。