1

Flash as2 RSS フィードがブラウザーでライブになると、「未定義」の出力が表示されます。ローカルでテストすると問題なく動作しますが、ライブになると「未定義」と表示されます。私のコードは以下です。

これを調査したところ、ブラウザまたはクロスドメインの問題によるセキュリティ対策である可能性があることがわかりました. また、この RSS フィードを google feedburner にミラーリングしてみました。Operaブラウザでのみ動作しますが。どんな提案も素晴らしいでしょう。むしろ、ブラウザーがフィードを読み取れるようにするために、ファイルにアクションスクリプトを記述する必要がある場合。

以下は、あなたの一人が親切に私を助けてくれたコードです。

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 の詳細については、こちらを参照してください。

SWF とフィード間のプロキシとして機能する PHP などのサーバー側スクリプトを使用して、これをバイパスできます。

PHP での例

プロキシ.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");

投稿した問題が解決したら、回答を受け入れてください。

于 2013-10-17T21:55:32.733 に答える