如何使用NodeJS访问其他服务器?

时间:2015-10-16 12:09:35

标签: php xml node.js

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

2 个答案:

答案 0 :(得分: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();

答案 1 :(得分: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=&#34 + STR,TRUE);

xmlhttp.send();