我想通过JSON将对象POST发送到node.js服务器。
Object结构是嵌套的,并且永远不会成功在node.js服务器站点上正确接收和解析。
EDIT2
我找到了解决方案:请参阅答案部分......
修改
我找到了
console.log(body);
本身输出
VAL1 =你好&安培; VAL2%5Bval3%5D =世界
// = {“val1”:“你好”,“val2 [val3]”:“世界”}
我们采用JSON方式
client.js
var data ={val1:"hello",val2:{val3:"world"}};
console.log(data); // -> *1
$.ajax({
url:"/",
type:"POST",
dataType: 'json',
data:data,
success:function (res)
{
resHandler(res);
}
});
* 1 ChromeDevelopersTool
对象
val1:“你好”
val2:对象
val3:“世界”
server.js
var onreq = function (req, res)
{
if(req.method == 'POST')
{
var body = '';
req.on('data', function (data)
{
body += data;
});
req.on('end', function ()
{
var json = qs.parse(body);
console.log(json.val1); //hello
console.log(json.val2); //undefined
console.log(json.val3); //undefined
console.log(JSON.stringify(json));
//{"val1":"hello","val2[val3]":"world"}
});
}
我理解
val2的[VAL3] 是 val2.val3
然而,
问题1
JSON.stringify打印出来
{ “VAL1”: “你好”, “val2的[VAL3]”: “世界”}
不
{VAL1: “你好”,val2的:{VAL3: “世界”}}
这很难看,我不知道为什么会这样。
问题2
我永远无法获得{val3:“world”}
的console.log(json.val3); //未定义
任何人都可以解释,如何将嵌套的JSON发布到node.js服务器?
感谢。
答案 0 :(得分:0)
不要在jQuery Ajax上使用JSON类型的数据,而是使用Stringified JSON
我创建了一个WIKI