2015-10-16 107 views
0

我有一个node.js本地服务器,其中包含一个html文件和一个包含php文件的Apache服务器,该文件从google获取新闻提要作为xml字符串并将其发送到html页面(节点服务器)以显示它。但它没有显示任何结果。 如果我将两个文件放在同一台服务器上,那么它工作正常。为什么?如何使用NodeJS访问其他服务器?

回答

0

如果我正确理解你的问题,那么当你的代码在同一台服务器上运行时,你的代码是完美的。如果您的PHP代码和节点位于不同服务器上,则会出现问题。基本上问题在于HTTP请求。

您可以尝试在node.js控制器中添加一行。

var http = require('http');

> var options = { 
>  host: domainurl, 
>  path: request.path, // example Phpapi 
>  method: 'GET' 
>  }; 

> 
>  var req = http.request(options, function(res) { 
>  console.log(res); // data you get from php server 
>  }); 
> 
>  req.on('error', function(e) { 
>  console.log('problem with request: ' + e.message); 
>  }); 
>  
>  req.end(); 
+0

它不工作.. –

+0

你检查了请求的URL吗? – 2015-10-16 12:52:34

+0

我必须得到从php服务器到node.js的响应。 当我在php文件中使用它时,html没有显示任何结果 –

0

我已经解决了这个问题。在开始任何代码之前,在php文件中使用以下代码。
标题(“Access-Control-Allow-Origin:http://localhost:3000”)。
3000是node.js服务器运行的端口。并且在html文件(放置在节点服务器上)中使用下面的代码,它将接收数据。 localhost:80是运行getrss.php文件的端口。

xmlhttp = new XMLHttpRequest();

xmlhttp = new ActiveXObject(“Microsoft.XMLHTTP”);

xmlhttp.open(“GET”,“http://localhost:80/getrss.php?q=”+ str,true);

xmlhttp.send();

相关问题