繁体   English   中英

React 调用 Node 服务器 ajax 中的数据未定义

[英]Data in ajax call from React to Node server is undefined

我正在尝试使用 jquery 的 ajax 方法将数据从我的 React 前端发送到 Node 后端。 Node 正在接收 api 请求,但数据未定义。

反应:

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);
});

Node 打印“Request received”,然后是undefined 如果我记录req而不是req.body ,它仍然是未定义的。

我有几个想法:

  1. 尝试将数据解析为字符串。 如果您想发送 HTTP 请求,则应将其格式化为正确的类型,例如。 文本(字符串)或 JSON。

当数据是 object 时,jQuery 从对象的键/值对生成数据字符串,除非 processData 选项设置为 false 来源: https://api.jquery.com/jQuery.ajax/

您的数据实际上是这样的:

数据:'{“名称”:“约翰”,“地点”:“阿拉斯加”}'

这就是为什么 express 可能会在解析时出现一些问题。

参考: jQuery 在请求正文中发布有效 json

  1. 您在使用 express body 解析器配置时遇到问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM