2011-05-14 138 views
0

我一直收到来自我在我的node.js服务器文件中调用的URL的错误请求错误。有任何想法吗?在node.js中从URL获取json时出现错误请求400

我试过外部工作URLs,所以它不是本地主机问题。

var http = require('http'), 
io = require('socket.io'); 

server = http.createServer(function(req, res){ 
res.writeHead(200, {'Content-Type': 'text/html'}); 
}); 
server.listen(8181); 

// socket.io 
var socket = io.listen(server); 

socket.on('connection', function(client){ 

function getMessages() { 

    http.get({ host: 'localhost', port: 8888, path: 'json.php' }, function(response) { 

     var data = ""; 
     response.on('data', function(chunk) { 
      data += chunk; 
     }); 

     response.on('end', function() { 

      socket.broadcast(JSON.parse(data)); 
      //console.log(data); 
      //socket.broadcast('{ "alrt": "YES", "message": "Something is wrong!" }'); 
      //socket.broadcast('hi'); 
     }); 

    }); 

} 

setInterval(getMessages, 1000); 

client.on('message', function(){}) 
client.on('disconnect', function(){}); 

}); 

回答

2

尝试增加斜杠 '/' 字在你的http.get的路径选择Field对象:

... 
http.get({ host: 'localhost', port: 8888, path: '/json.php' }, function(response) { 
... 

而且你缺少你的HTTP服务器res.end();

var http = require('http'), 
    io = require('socket.io'); 

server = http.createServer(function(req, res){ 
    res.writeHead(200, {'Content-Type': 'text/html'}); 
    res.end(); 
}); 
server.listen(8181); 
...