我正在尝试使用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请求发送的文本?
先感谢您 !
编辑:测试在127.0.0.1(localhost)上完成.
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主页上的示例.
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/');
> Node.js请求对象没有以纯文本形式请求正文.它需要由数据event中的块处理.
>您需要使用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);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。