【发布时间】:2014-08-23 23:53:48
【问题描述】:
突然之间,我所有的项目都发生了这种情况。
每当我使用 express 在 nodejs 中发帖时,body-parser req.body 是一个空对象。
var express = require('express')
var bodyParser = require('body-parser')
var app = express()
// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded())
// parse application/json
app.use(bodyParser.json())
app.listen(2000);
app.post("/", function (req, res) {
console.log(req.body) // populated!
res.send(200, req.body);
});
通过 ajax 和邮递员,它总是空的。
但是通过 curl
$ curl -H "Content-Type: application/json" -d '{"username":"xyz","password":"xyz"}' http://localhost:2000/
它按预期工作。
我尝试在前者中手动设置Content-type : application/json,但我总是得到400 bad request
这让我发疯了。
我以为是 body-parser 中更新了一些东西,但我降级了它并没有帮助。
任何帮助表示赞赏,谢谢。
【问题讨论】:
-
所以您尝试在邮递员中明确设置
Content-Type?如果没有,您可以尝试一下,因为我之前遇到过邮递员不发送Content-Type的问题。 -
是的,我做到了。那是我收到 400: invalid json
-
@mscdex - 感谢我没有在邮递员中设置 content-tupe 并且变得疯狂:)
-
如果你做对了所有事情,真正的答案 - stackoverflow.com/a/61802608/4010017
-
@kaushalpranav 链接到的内容为我修复了它!