Node.js从节点检索数据到jquery ajax回调

时间:2012-03-18 16:37:13

标签: jquery node.js

我有一个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回调中? (希望在保持连接存活的同时)

1 个答案:

答案 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!!");
});

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

希望这有帮助!