AJAX发送数据到Node.js服务器

我试图用AJAX发送数据到一个Node.js服务器,但不断碰到同样的问题,接待。

这是客户端JavaScript / AJAX代码:

var objects = [ function() { return new XMLHttpRequest() }, function() { return new ActiveXObject("MSxml2.XMLHHTP") }, function() { return new ActiveXObject("MSxml3.XMLHHTP") }, function() { return new ActiveXObject("Microsoft.XMLHTTP") } ]; function XHRobject() { var xhr = false; for(var i=0; i < objects.length; i++) { try { xhr = objects[i](); } catch(e) { continue; } break; } return xhr; } var xhr = XHRobject(); xhr.open("POST", "127.0.0.1:8080", true); xhr.setRequestHeader("Content-Type", "text/csv"); xhr.send(myText); console.log(myText); 

出于某种原因,您可以在http://nodejs.org/api/http.html上获得的基本HTTP服务器导致ECONNREFUSED错误(即使使用sudo和端口8080),所以我尝试了这个简单的代码:

 var http = require('http'); http.createServer(function(req, res) { console.log('res: ' + JSON.stringify(res.body)); }).listen(8080, null) 

但它保持打印res: undefined

另一方面, AJAX POST似乎不会在控制台中触发任何错误。

所以我的问题是否如下:

  • 我怎样才能有一个简单但坚实的node.js服务器,可以检索由AJAX POST请求发送的文本?

先谢谢你 !

编辑:testing是在127.0.0.1 (本地主机)上完成的。

EDIT2:这是更新的Node.js代码:

 var http = require('http'); var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end(); req.on('data', function(data) { console.log(data); }) }).listen(1337, '127.0.0.1'); console.log('Server running at http://127.0.0.1:1337/'); 

看看http://nodejs.org主页上的例子&#x3002;

 var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World\n'); }).listen(1337, '127.0.0.1'); console.log('Server running at http://127.0.0.1:1337/'); 
  1. Node.js请求对象没有以纯文本forms请求主体。 它需要由data 事件处理块。
  2. 您需要用res.end结束请求才能将响应发送给客户端。

更新:

此代码应该正常工作:

 var http = require('http'); http.createServer(function (req, res) { var body = ''; req.on('data', function(chunk) { body += chunk.toString('utf8'); }); req.on('end', function() { console.log(body); res.end(); }); }).listen(8080);