我正在尝试将一个数组作为json发送给ajax请求,但出于某种原因,如果我构建了一个我要发送的数据数组并将其传递给数据属性,那么它与我手动只是一样输入我想要的内容。这是一个例子:
使用:
$.ajax({
method: "PUT",
url: restURL,
data: {
id: 1,
number: 99
}
});
chrome dev控制台中的表单数据对于网络请求是什么样的:
id:1
number:99
不起作用
var array = [];
array.push({
id: 1,
number: 99
});
$.ajax({
method: "PUT",
url: restURL,
dataType: "json",
data: JSON.stringify(array)
})
chrome dev控制台中的表单数据对于网络请求是什么样的:
[{"id":1,"number":99}]:
我需要数据来匹配开发控制台中第一个输出的数据,因为这是我们的服务器所期望的,但我无法弄清楚如何预先构建数组。任何帮助将不胜感激。
答案 0 :(得分:1)
在第一个示例中,您将发送表单编码键/值对。
在第二个你要发送的是一个字符串...恰好是json ......但它只是一个没有键的值。
尝试:
data: {myArray: array}
然后使用密钥myArray
答案 1 :(得分:1)
正如@charlietfl所说,您的问题是您将数据设置为数组,其中jquery documentation 说数据参数必须是对象
解决方案可能是将您的数组作为数据对象的属性, 例如:
var arr = [];
arr.push({
id: 1,
number: 99
});
var myObj = { data: arr};
$.ajax({
method: "PUT",
url: restURL,
data: myObj
});
希望这有帮助