0

从我网络中的一台机器(客户端),我正在$.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()s 工作得非常好。我得到与节点端发送的完全相同的数据,

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

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

4

2 回答 2

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 文档

于 2013-02-15T12:51:51.133 回答
0

自己解决了这个问题。

问题出在跨域 ajax 请求上。我不知道为什么会这样,即使我在电话中指定url:localhost:8080$.ajax......

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

和平

于 2013-02-15T13:46:01.690 回答