如何使用ajax将数据发送到节点js服务器

时间:2017-12-06 14:37:10

标签: node.js ajax

我试图读取发送到node.js服务器的数据。

客户方:

const sendToDB =(date)=> {
  var xhttp = new XMLHttpRequest();
  var d = JSON.stringify(date);
  xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
      console.log(d);
    }
  };
  xhttp.open("POST", "api/info", true);
  xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  xhttp.send(d);
}

和服务器:

var http = require('http');
var server = http.createServer(function(req, res) {
  res.writeHead(200, { 'Content-Type': 'text/plain' });
  req.on('data', function (chunk) {
    console.log(req.body.date);
  });
  res.end();
});
server.listen(3001);

如何在节点js服务器中接收与xhttp.send(d)一起发送的数据?

2 个答案:

答案 0 :(得分:1)

var server = http.createServer(function(req, res) {
      if(req.method == "POST"){       
           var clientData = '';
           req.on('data', function (chunk) {
                clientData+=chunk;
           });
           req.on('end',function(){
                console.log(JSON.parse(clientData));
           })
      }
      res.end();
});

答案 1 :(得分:0)

在发送一些json数据时应使用标题"Content-Type", "application/json"。 确保你发送这样一个对象:

{
  date: {
    foo: bar
  }
}

正如您的服务器期望它在正文req.body.date