我刚开始接触 Node.js。我有一个简单的测试设置。
var sys = require('util'),
http = require('http'),
qs = require('querystring');
http.createServer(function (req, res) {
if (req.method == 'POST') {
var body = '';
req.on('data', function (data) {
body += data
});
req.on('end', function () {
var POST = qs.parse(body);
console.log(POST);
});
}
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('success');
}).listen(1337, "127.0.0.1");
console.log('Server running at http://127.0.0.1:1337/');
我的测试客户端JS
$.post("http://127.0.0.1:1337", "This is my POST data.", function (data) {
alert(data);
});
$.get("http://127.0.0.1:1337", function (data) {
alert(data);
});
如果我浏览到我的 HTTP 服务器正在运行的地址:http://127.0.0.1:1337我看到响应文本“成功”。
然而,当我使用 $.post 或 $.get 时,它们都成功,状态为 200 但没有响应。 $.get 和 $.post 回调函数从未被调用,我也没有看到出现警报。我做错了什么?
谢谢!
最佳答案
这对我来说似乎很好用。你如何测试?
尝试 curl :
curl -XGET http://localhost:1337/
并发布:
curl -XPOST -d foo=bar http://localhost:1337/
需要注意的一件事是,无论 POST 的输入是什么,您如何编写返回“成功”的代码。如果您需要处理/查看先发布的数据,则需要在调用 req.on('end', ...) 之后发送响应。 (或在那个函数中)。
关于jquery - Node.js 为什么我无法从 HTTP 服务器获取响应文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8336560/