jquery 从React到节点服务器的 AJAX 调用中的数据未定义

tyu7yeag  于 2023-01-08  发布在  jQuery
关注(0)|答案(1)|浏览(148)

我尝试使用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,它仍然是未定义的。

bf1o4zei

bf1o4zei1#

我有几个想法:
1.尝试将数据解析为字符串。如果您想发送HTTP请求,则应将其格式化为适当的类型,例如文本(字符串)或JSON。
当数据是对象时,jQuery从对象的键/值对生成数据字符串,除非processData选项设置为false source:https://api.jquery.com/jQuery.ajax/
您的数据实际上是这样的:
数据:"{"姓名":"约翰","地点":"阿拉斯加"}"
这就是为什么express在解析时可能会出现一些问题。
参考:jQuery posting valid json in request body
1.快速正文解析器配置有问题。

相关问题