我想通过 JSON 将一个对象发布到 node.js 服务器。
Object 结构是嵌套的,并且从未成功在 node.js 服务器站点上正确接收和解析。
编辑2
我找到了解决方案:请参阅答案部分...
编辑
我发现
console.log(body);
自身输出
val1=你好&val2%5Bval3%5D=世界
//= {"val1":"hello","val2[val3]":"world"}
奇怪的 JSON 方式
客户端.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 Chrome 开发者工具
目的
val1:“你好”
val2:对象
val3:“世界”
服务器.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":"hello","val2[val3]":"world"}
不是
{val1:“你好”,val2:{val3:“世界”}}
很丑,我不知道为什么会这样。
问题 2
我永远无法得到 {val3:"world"}
控制台.log(json.val3); //不明确的
任何人都可以解释,我如何将嵌套的 JSON 发布到 node.js 服务器?
谢谢。