Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AJAX和Node JS/Express post不发送或接收数据_Javascript_Jquery_Ajax_Node.js_Express - Fatal编程技术网

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

Javascript AJAX和Node JS/Express post不发送或接收数据,javascript,jquery,ajax,node.js,express,Javascript,Jquery,Ajax,Node.js,Express,我是Node的新手,我正在尝试使用app.post,无论何时执行操作,一切都可以正常工作,包括控制台日志,但它不会从main.js接收AJAX发送的数据 下面是main.js的一个snipper,它会发送: $.ajax({ type: 'POST', data: '{"title":'+ this.messageInput.value +'}', url: 'http://localhost:3000/send' }); 下面是我的config.js,

我是Node的新手,我正在尝试使用app.post,无论何时执行操作,一切都可以正常工作,包括控制台日志,但它不会从main.js接收AJAX发送的数据

下面是main.js的一个snipper,它会发送:

        $.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的原因。当我输入console log req.body时,我得到了未定义的结果。当我控制台log req时,我会得到一个数据列表,但不是我发送的数据


我希望有人能帮忙

使用body解析器很好,但是您在应用程序中定义了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脚本对象表示法的缩写

var myData = {};
myData.title = this.MessageInput.value;
然后在Ajax代码中,只需使用myData:


注意:本示例大部分直接取自,其中有大量文档化的示例,因此如果您不确定如何使用该模块,请查看它

非常感谢!我错过了jsonParser。你不知道我花了多长时间在这个lol上。很高兴它对你有帮助,请将此标记为正确答案,以供将来参考
$.ajax({
    type: 'POST',
    data: myData,
    url: 'http://localhost:3000/send'
});