1

一旦我的 flash as2 rss feed 在浏览器上运行,我就会得到一个“未定义”的输出。当我在本地测试它时它工作正常,但一旦它上线,它就会显示“未定义”。我的代码如下。

现在我对此进行了研究,发现这可能是通过浏览器的安全措施或跨域问题。我还尝试在 google feedburner 中镜像这个 rss 提要。虽然它只适用于歌剧浏览器。任何建议都会很棒。相反,如果我必须在文件中编写一些动作脚本以允许浏览器重新读取提要。

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

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>";
     }   
       }   

          } 
4

1 回答 1

0

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

您可以借助诸如 PHP 之类的服务器端脚本绕过此问题,以充当 SWF 和提要之间的代理。

PHP 中的示例

代理.php

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

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

在 Flash 中,您调用:

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

当它解决您发布的问题时,请接受答案。

于 2013-10-17T21:55:32.733 回答