我试图使用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){
}
});
如何解决这个问题?
答案 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;