0
我使用jQuery那数据是包含数组的JSON对象发送请求到节点/ Express服务器:阵列在AJAX请求JSON对象数据
var data = {
"name": "James Jamesy",
"children": [
{
"name": "Tiny James",
"age": "4"
},
{
"name": "Little James",
"age": "6"
},
{
"name": "Graham",
"age": "8"
}
]
}
var request = $.ajax({
method: 'PUT',
url: apiPath + 'updateuser',
data: data,
dataType: 'json'
});
本身工作正常的请求,但是该服务器是报告中的数据为:
var data = {
"name": "James Jamesy",
"children": JSON.stringify([ ... ])
}
012:
{
name: 'James Jamesy',
'children[0][name]': 'Little James',
'children[0][age]': '4',
'children[1][name]': 'Medium James',
'children[1][age]': '6',
'children[2][name]': 'Graham',
'children[2][age]': '8'
}
现在我已经不是字符串化的儿童阵列想通了,我可以得到我想要的结果
然后JSON.parse()
在服务器上。
但是我希望有人可以解释为什么数组被转换为它在请求中的位置,以及我是否应该以不同的方式处理这个问题?正如在这个例子中,转换单个数组很好,但是我可能会将我想要发送到服务器的半复杂对象转换为可能。
在此先感谢!
编辑:(?)此外和奇怪,如果我发送JSON结果早在传递JSON,它完美的作品:
res.json(JSON.parse(req.body.categories));
浏览器注销的对象,我可以完全操纵它精细。
尝试改变'数据类型:在Ajax调用json'' –
感谢您的答复: 'json''到'的contentType'!不幸的是,这导致服务器只是收到一个空的对象。 ('{}') – stuntboots
我看到很多JSON错误lol你在Express中使用body parser吗? –