2012-03-18 64 views
3

我有一个jQuery的ajax调用发送请求到node.js应用程序,工作正常,问题是,我无法检索任何响应与jquery回调。Node.js从节点检索数据到jquery ajax回调

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的应用数据retreive到我的jQuery的回调? (希望同时保持连接活着)

回答

3

如果要触发服务器上的数据时,你必须将数据发送到服务器,也许使用jQuery的POST方法为:

var postSomething = function(){ 

    $.post 
    (
     "http://127.0.0.1:3000/", 
     {wooo:'wooo'}, 
     function(data) 
     { 
     console.log(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!!"); 
}); 

如果您使用'结束',您将结束请求,如果要保持活动状态,则可以使用'写入'。这样,连接仍然处于活动状态,并且每次将数据写入响应对象时都会将数据传输到客户端。

希望这会有所帮助!