Jquery Node.js为什么不从HTTP服务器返回响应文本?
我刚刚开始玩Node.js。我有一个简单的测试设置Jquery Node.js为什么不从HTTP服务器返回响应文本?,jquery,node.js,Jquery,Node.js,我刚刚开始玩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) {
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服务器正在运行的地址:我会看到响应文本“success”
但是,当我使用$.post或$.get时,它们都会成功,状态为200,但没有响应。从未调用$.get和$.post回调函数,我也没有看到出现警报。我做错了什么
谢谢 对我来说似乎很管用。你是如何测试的 试试卷发:
curl -XGET http://localhost:1337/
并张贴:
curl -XPOST -d foo=bar http://localhost:1337/
需要注意的一点是,无论帖子的输入是什么,你是如何编写代码的,你都会返回“成功”。如果需要首先处理/查看发布的数据,则需要在调用requ.on('end',…)后发送响应。(或在该功能中)。我想看看非200型飞机是否会回来。@hafichuk我会试试。。但是,firebug显示的状态为200无响应数据的状态为
200
,通常意味着违反同源策略。您可能正在从文件系统托管客户机文件?要禁用Chrome中的安全性,请参阅:谢谢。。但我希望得到一个警报。我正在使用我帖子中的客户端代码进行测试。我不明白的是,为什么从来没有调用过$.get和$.post回调函数。那么请展示一个完整的客户端示例。