将数据从节点js返回到$ .ajax

时间:2013-02-15 12:49:18

标签: node.js

我的网络(客户端)中的其中一台计算机正在向我的$.ajax()服务器发出Nodejs请求,例如,

//Client : index.html

$.ajax({
    type:"post",
    url:'http://192.168.2.6:8080',
    data:JSON.stringify({"loginData":{"uanme":"maverick","upass":"asd"}}),
    success:function(data){console.log(data);alert(data);},
    error:function(){alert('Error aala');}
});

我的Nodejs服务器

//listener.js

var server = require('http').createServer(function (request, response) {
    var body='';
    if(request.method=='POST'){
       request.on('data',function(data){
            body+=data;
       });
       request.on('end',function(){
           console.log(body);
       });
    }
}).listen(8080);

这些console.log()工作正常。我得到了我在节点端发送的完全相同的数据,

现在我的问题是,在php我们发出$.ajax()请求时,我们在php文件中使用echo将数据发送回客户端,

如果我想将数据发送回客户端,我应该在Nodejs (listener.js file)的服务器端做什么?

2 个答案:

答案 0 :(得分:1)

var server = require('http').createServer(function (request, response) {
    var body='';
    if(request.method=='POST'){
       request.on('data',function(data){
            body+=data;
       });
       request.on('end',function(){
           console.log(body);
           //response.setHeader("Content-Type", ""); set the header to your content type
           response.write('foo'); // <-----
           response.end('Dear client, I have cake for you'); // <-----
       });
    }
}).listen(8080);

进一步阅读Node.js Documentation

答案 1 :(得分:0)

我自己解决了这个问题。

问题在于跨域ajax请求。 我不知道为什么会发生这种情况,即使我在url:localhost:8080电话中指定了$.ajax ...

解决了我添加的问题 response.setHeader("Access-Control-Allow-Origin", "*"); 在我的回复标题中。

和平