Node / Express解析的JSON POST无效JSON

时间:2017-03-13 01:55:02

标签: json node.js express

我正在使用Pure Javascript XMLHttpRequest发出JSON POST请求,但是Express似乎将收到的JSON包装在另一个对象中,我该如何防止这种情况?

我正在使用bodyParser:

app.use(bodyParser.json({limit: '50mb'}));

这是发送JSON数据的客户端:

var xhr = new XMLHttpRequest();
xhr.open("POST", "https://xxx.my.net/",true);

// This header MUST be present for POST requests.
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.setRequestHeader("Accept", "application/json, text/javascript");
xhr.send(JSON.stringify({"hxx":1}));

这是Nodejs / Express中间件:

app.use(function(req, res, next){
    fn.console.log(req.body);
   })

这是console.log输出:

   { '{"hxx":1}': '' }

我知道我可以解析身体:

console.log(JSON.parse(Object.keys(req.body)[0]))

但我不想这样做!

重要提示

我已经尝试过使用内容类型=" application / json"但是当我这样做时,请求变成了GET而不是POST,除非我声明" application / x-www-form-urlencoded"浏览器会自动将请求从POST转换为GET。

0 个答案:

没有答案