繁体   English   中英

AJAX和Node JS / Express帖子未发送或接收数据

[英]AJAX and Node JS/Express post not sending or receiving data

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

这是发送给它的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解析器很好,但是您是否在应用中定义了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

$.ajax({
    type: 'POST',
    data: myData,
    url: 'http://localhost:3000/send'
});

注意:此示例大部分直接取自正文解析器Github Page ,其中包含大量有据可查的示例,因此,如果不确定如何使用该模块,请查看该模块

暂无
暂无

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

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