我尝试使用jquery的ajax方法将数据从React前端发送到Node后端,Node正在接收api请求,但数据未定义。
React:
console.log("Making Node API call");
$.ajax({
method: "POST",
url: "test",
data: {
name: "John",
place: "Alaska"
}
}).done(function( msg ) {
console.log(msg);
});
节点:
app.post("/test", (req, res) => {
console.log("Request received");
console.log(req.body);
});
节点打印"Request received",后面跟着undefined
。如果我记录req
而不是req.body
,它仍然是未定义的。
1条答案
按热度按时间bf1o4zei1#
我有几个想法:
1.尝试将数据解析为字符串。如果您想发送HTTP请求,则应将其格式化为适当的类型,例如文本(字符串)或JSON。
当数据是对象时,jQuery从对象的键/值对生成数据字符串,除非processData选项设置为false source:https://api.jquery.com/jQuery.ajax/
您的数据实际上是这样的:
数据:"{"姓名":"约翰","地点":"阿拉斯加"}"
这就是为什么express在解析时可能会出现一些问题。
参考:jQuery posting valid json in request body
1.快速正文解析器配置有问题。