req.body在帖子上空了

req.body在帖子上空了

我的所有项目都突然发生了这种情况。

每当我使用express和body-parser在nodejs中发表帖子时req.body都是一个空对象。

var express    = require('express')var bodyParser = require('body-parser')var app = express()// parse application/x-www-form-urlencodedapp.use(bodyParser.urlencoded())// parse application/jsonapp.use(bodyParser.json())app.listen(2000);app.post("/", function (req, res) {
  console.log(req.body) // populated!
  res.send(200, req.body);});

通过ajax和postman它总是空的。

但是通过卷曲

$ curl -H "Content-Type: application/json" -d '{"username":"xyz","password":"xyz"}' http://localhost:2000/

它按预期工作。

我尝试手动设置Content-type :  application/json前者,但我总是得到400 bad request

这让我发疯了。

我认为这是在身体解析器中更新的东西,但我降级了,但没有帮助。

任何帮助表示感谢,谢谢。


侃侃尔雅
浏览 761回答 3
3回答

波斯汪

使用Postman,要使用原始JSON数据有效负载测试HTTP post操作,请选择该raw选项并设置以下标头参数:Content-Type: application/json另外,请务必用双引号将JSON有效内容中用作键/值的任何字符串包装起来。该body-parser包将解析多行原始JSON有效负载。{     "foo": "bar"}使用Postman v0.8.4.13扩展(body-parserv1.12.2和expressv4.12.3)在Chrome v37和v41中进行了测试,其设置如下:var express = require('express');var app = express();var bodyParser = require('body-parser');// configure the app to use bodyParser()app.use(bodyParser.urlencoded({     extended: true}));app.use(bodyParser.json());// ... Your routes and methods here

慕运维8079593

我犯了一个非常愚蠢的错误,忘了name在我的html文件中定义输入的属性。而不是<input&nbsp;type="password"&nbsp;class="form-control"&nbsp;id="password">我有这个。<input&nbsp;type="password"&nbsp;class="form-control"&nbsp;id="password"&nbsp;name="password">现在request.body填充如下:{ password: 'hhiiii' }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Node.js