在jquery中使用ajax发布一个空数组

时间:2014-04-28 06:49:51

标签: jquery ajax arrays

我试图使用ajax调用发布一个空数组,但数据是作为空字符串发布的,即:。我希望数据作为Parts:[]发布,因为webservice只处理空集合,即Parts []。

Code:
var parts=[];
$.ajax({
type: "POST",
url: "http://api-test.example.com",
dataType: "json",
headers:{Authorization:authHeader},
data: "Parts="+parts,
    success: function (result) {
    },
error: function (result){
}
});

如何解决这个问题?

3 个答案:

答案 0 :(得分:0)

尝试将数据作为数据传递:{}

$.ajax({
type: "POST",
url: "http://api-test.example.com",
dataType: "json",
headers:{Authorization:authHeader},
data: {Parts : parts} ,
    success: function (result) {
    },
error: function (result){
}
});

答案 1 :(得分:0)

将以下属性设置为您的通话

 'traditional': true

还将您的JSON数据传递编辑为

 data: JSON.stringify({ "parts" : parts } );

实际上,所有以前的版本都是通过这种方式传递数组的,但是随着新框架在rails上的ruby和其他进程数组的不同,jQuery开始了新的方法。

有关SO的更多帮助如下,

What is "traditional style of param serialization' in JQuery

答案 2 :(得分:0)

由于“传统:true”对我不起作用,因此我找到了另一种解决方案:将数组设置为null。

let myArray = [];

// whatever code

if(myArray == [])
  myArray = null;