gpt4 book ai didi

javascript - AJAX 和 Node JS/Express post 不发送或接收数据

转载 作者:搜寻专家 更新时间:2023-11-01 00:30:02 25 4
gpt4 key购买 nike

我是 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');
});

我在 express 中使用 bodyParser。这就是我使用 req.body 的原因。当我控制日志 req.body 时,我得到了未定义。当我控制日志请求时,我得到了一个数据列表,但不是我发送的数据。

希望有人能帮忙!

最佳答案

使用 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com