将数据数组传递给$ .ajax失败

时间:2016-01-28 04:39:47

标签: javascript jquery ajax

var array = [];
array.push(something);

var data = {
    action: action,
    array: array
  };

$.ajax({
       type: "POST",
       data: data,
       url: url,
       success: something,
       error: something
    });

在我在Chrome网络标签中的请求中,我将array []视为属性名称。那很奇怪。

3 个答案:

答案 0 :(得分:0)

这是因为jQuery完成了数据处理。

jQuery.ajax()

  

如果value是一个数组,jQuery会使用相同的键序列化多个值   基于传统设置的价值(如下所述)。

jQuery.param()

您可以通过traditional: true来禁用此性质

$.ajax({
  type: "POST",
  data: data,
  url: url,
  traditional: true,
  success: something,
  error: something
});

答案 1 :(得分:0)

试试这个:

var myArray = [];
myArray.push(something);

$.ajax({
       type: "POST",
       data: {myArray:myArray},
       url: url,
       success: something,
       error: something
    });

我希望这会有所帮助。欢呼声。

答案 2 :(得分:0)

试试这个。这可以帮到你

var array = [];
array.push(something);

      $.ajax({                    
                type : "POST",
                url :  ajax_url,  
                data : {'array' : array},//use single quote for key
                success : function(res){},
                error : function(){}
               });