我正在使用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。