我是 Node 新手,我正在尝试使用 app.post,一切正常,包括每当执行操作时的控制台日志,但它没有接收到 AJAX 从 main.js 发送的数据。
这是发送它的 main.js 的片段:
$.ajax({
type: 'POST',
data: '{"title":'+ this.messageInput.value +'}',
url: 'http://localhost:3000/send'
});
这是我的 config.js,它应该接收数据:
app.post('/send', function(req, res) {
console.log(req.body);
console.log('Send button clicked');
});
我正在将 bodyParser 与 express 一起使用。这就是我使用 req.body 的原因。当我控制台日志 req.body 时,我得到了未定义的信息。当我控制台 log req 时,我得到一个数据列表,但不是我发送的内容。
希望有人能帮忙!
最佳答案
您使用 body-parser 很好,但是您在应用程序中定义了 JSON 解析器吗?
您没有粘贴所有代码,因此如果您还没有代码,请添加以下代码:
var express = require('express')
var bodyParser = require('body-parser')
var app = express()
// create application/json parser --> This is probably what you are missing
var jsonParser = bodyParser.json()
// POST /api/users gets JSON bodies --> Note how we use a jsonParser in our app.post call
app.post('/send', jsonParser, function (req, res) {
console.log(req.body);
console.log('Send button clicked');
})
此外,无需手动构建数据,只需创建一个对象并发送它(记住 JSON 是“Java Script Object Notation”的缩写)
var myData = {};
myData.title = this.MessageInput.value;
然后在您的 Ajax 代码中,只需使用 myData
:
$.ajax({
type: 'POST',
data: myData,
url: 'http://localhost:3000/send'
});
注意:此示例的大部分内容直接取自 body-parser Github Page ,它有大量记录良好的示例,因此如果您不确定如何使用该模块,请查看
关于javascript - AJAX 和 Node JS/Express post 不发送或接收数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39967842/