我有一个jquery ajax调用,它发送请求到node.js应用程序工作正常,问题是我无法通过jquery回调检索任何响应。
Jquery
$(document).ready(function(){
var listing = $('#listing');
$.ajax
({
url: "http://my.ip.is.here:3000/",
cache: false,
//timeout: 5000,
success: function(data)
{
listing.append(data);
}
});
})
节点:
var s = http.createServer(function (req, res) {
req.on('data', function(sock) {
// SEND DATA BACK TO AJAX HERE
});
});
s.listen(3000, 'my.ip.is.here');
console.log('Server running at http://my.ip.is.here:3000/');
如何将node.js应用程序中的数据检索到我的jquery回调中? (希望在保持连接存活的同时)
答案 0 :(得分:3)
如果要在服务器上触发数据事件,则必须将数据发送到服务器,可能使用Jquery的post方法,如下所示:
var postSomething = function(){
$.post
(
"http://127.0.0.1:3000/",
{wooo:'wooo'},
function(data)
{
console.log(data);
}
);
}
此外,当服务器触发'data'事件时,您应该在响应对象中写入一些数据:
req.on('data', function(sock) {
res.writeHead(200, {"Content-Type": "text/plain"});
res.end("Hello!!");
});
但是,如果您只想从服务器检索数据,我认为您不需要服务器上的数据事件,并且只能处理请求,如下所示:
var s = http.createServer(function (req, res) {
res.writeHead(200, {"Content-Type": "text/plain"});
res.end("Hello!!");
});
如果您使用'结束',您将结束请求,如果您想保持活动,您可以使用'写'。这样,连接仍然处于活动状态,并且每次将数据写入响应对象时都会将数据流传输到客户端。
希望这有帮助!