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