我得到了一个'未定义'输出我的flash as2 rss feed在浏览器中生成一次

时间:2013-10-16 19:36:43

标签: xml flash rss actionscript-2

我的闪存as2 rss提供了一个'undefined'输出,一旦它在浏览器上生成。当我在本地测试时它工作正常,但一旦它进入LIVE它显示'undefined'。我的代码如下。

现在我对此进行了研究,发现它可能是通过浏览器或跨域问题的安全措施。我也尝试在google feedburner中镜像这个rss feed。虽然它只适用于Opera浏览器。任何建议都会很棒。相反,如果我必须在文件中写一些actionscript以允许浏览器reed feed。

以下是你们其中一个人慷慨帮助我的代码。

xmlLoad.onLoad = function(e) {
  var xmlItems:XMLNode = xmlLoad.firstChild.firstChild;
  var itemlink:String,itemtitle:String,itemdesc:String = '';

  for (var m:Number = 0; m<xmlItems.childNodes.length; m++) {
     if (xmlItems.childNodes[m].nodeName == "item") {
        var article:Array = xmlItems.childNodes[m].childNodes
        itemlink = itemtitle = itemdesc = '';
        for (var n:Number = 0; n<article.length; n++) {             
            switch (article[n].nodeName) {
                case "link":
                    itemlink=article[n].firstChild.toString();  
                    break;
                case "title":
                    itemtitle=article[n].firstChild.toString();  
                    break;  
                case "description":
                    itemdesc=article[n].firstChild.nodeValue;  
                    break;
            }              
        }

       xml_text+= "<a href=\""+itemlink+"\"><u>"+itemtitle+"</u></a><br>"+itemdesc+"<br><br>";
     }   
       }   

          } 

1 个答案:

答案 0 :(得分:0)

您无法直接访问此Feed,因为服务器上设置了crossdomain.xml文件,只允许受限制的域列表访问此Feed:http://www.astrology.com/crossdomain.xml。有关crossdomain.xml here的更多信息。

您可以借助服务器端脚本(如PHP)绕过此操作,充当SWF和Feed之间的代理。

PHP中的示例

proxy.php

<?php
header ("Content-Type:text/xml");

echo file_get_contents('http://www.astrology.com/horoscopes/monthly-overview.rss');
?>

在闪光灯中,您可以致电:

xmlLoad.load("/path/to/proxy.php");

请在您发布的solves the problem时接受答案。