在AJAX请求上发送JSON对象,在服务器上未定义

时间:2018-01-07 00:31:17

标签: javascript json node.js ajax

我正在使用这样的XMLHttpRequest:

xml.send(JSON.stringify({ingredients: this.state.ingredients}));

将对象(this.state.ingredients)发送到服务器。我非常有信心它正确发送,因为在网络标签下的Chrome开发工具中,请求有效负载看起来正确。但是我在服务器上尝试了很多不同的东西来抓取那个对象而我除了undefined之外什么都得不到。

目前它看起来像这样:

router.post('/recipes/:recipe_id/add', function(req, res) {
  let ingredients = req.ingredients;
  console.log(ingredients)
}

但我也尝试过使用JSON.parse等尝试。我在这里做错了什么?

2 个答案:

答案 0 :(得分:2)

如果您使用express,请安装body-parser:

npm install --save body-parser

并使用它:

const bodyParser = require('body-parser');
app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({ extended: true })); 

并尝试:

let ingredients = req.body.ingredients;

答案 1 :(得分:0)

根据使用的框架,您的请求正文可能会在req.body