我通过Fetch API在我的React组件中发送数据,并将结果作为JSON返回。在我的Express服务器上POSTED时,我使用bodyParser中的jsonParser方法来解析数据,但是我只是得到了一个空对象。我不明白jsonParser的问题是什么,因为如果我使用textParser,我的数据会被发送好。
编辑:在服务器上打印出请求(req)时,它显示正文中没有收到任何内容。这只发生在jsonParser上,而不是textParser。
获取:
fetch('./test',{
method: 'POST',
body: ["{'name':'Justin'}"]
})
.then((result) => {
return result.json();
})
.then((response) => {
console.log(response);
})
.catch(function(error){
//window.location = "./logout";
console.log(error);
});
快递:
app.use('/test', jsonParser, (req,res) =>{
res.json(req.body);
})
答案 0 :(得分:2)
假设你想发布{name: 'Justin'}
个对象,你会想要像
fetch('test', {
method: 'POST',
body: JSON.stringify({name: 'Justin'}),
headers: new Headers({
'Content-Type': 'application/json; charset=utf-8'
})
})
body
参数不接受数组(这是您传递的数据)。
如果您的意思是发布数组,只需将body
值更改为
JSON.stringify([{name: 'Justin'}])