我刚开始玩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回调函数,我看不到出现警报。我做错了什么?
谢谢!
答案 0 :(得分:0)
它对我来说似乎很好。你是如何测试的?
尝试使用curl:
curl -XGET http://localhost:1337/
并发布:
curl -XPOST -d foo=bar http://localhost:1337/
要注意的一件事是,无论POST的输入是什么,您如何使代码返回'成功'。如果您需要处理/查看首先发布的数据,则需要在调用req.on('end',...)之后发送响应。 (或者在那个功能中)。