2013-04-03 38 views
2

(ActionScript3)嗨,我試圖找出爲什麼URLRequest在通過第三方網站查看時失敗。理想情況下,在下面的代碼中可以指出任何錯誤,但是,我認爲這很好,因爲我們做的類似的事情很好。ActionScript3錯誤處理URLRequest

旁邊的理想將是URLRequest錯誤處理,我怎麼能找出爲什麼URLRequest是不是從time.php拉動信息?即使是在時間軸上只輸出到一個文本框(一切正常,從測試環境中完成時)

非常感謝 克雷格

場景:

  • domain.com(服務器1):file.swf使用URLRequest加載domain.com/time.php?a=b(因此PHP和SWF都託管在同一個域和服務器上)

  • example.com (服務器2):PHP頁面嵌入file.swf(這反過來URLRequests time.php)

成果:

  • 當您訪問file.swf直接通過瀏覽器,它加載從time.php就好數據

  • 當您查看頁面file.swf被嵌入,在服務器2的加載失敗


file.swf

var loaderNameHolder; 
var loaderNameHolderLoader:URLLoader = new URLLoader(); 
var loaderNameHolderURLRqst:URLRequest = new URLRequest('http://domain.com/time.php?a=b'); 
loaderNameHolderLoader.addEventListener(Event.COMPLETE, loaderNameHolderURLFunc); 
loaderNameHolderLoader.load(loaderNameHolderURLRqst); 
function loaderNameHolderURLFunc(e:Event):void{ 
    loaderNameHolder = loaderNameHolderLoader.data 
    gotoAndStop(loaderNameHolder); 
} 

安全

  • 沒有對域的根文件夾地方跨域XML,它似乎沒有什麼區別(或不被正確引用/正確使用)但是正如提到的類似的東西,我做的很好,但沒有修改這個XML

回答

1

感謝您的提示,他們會是巨大的資源來保持。

實際的問題是,請求的URL沒有包含「www」(我認爲是因爲SWF嵌入了WWW,所以它來自「外部」域,我想我需要www.domain。com在我自己的安全XML中)。

克雷格

+0

我可以確認;雖然它們通常會以相同的方式處理/行爲,但兩個URI(例如「http:// www.domain.com」和「http:// domain.com」)通過定義指向兩個單獨的域。 – Kjartan

2

這聽起來像是一個安全問題,雖然你說你有跨域文件。

您是否使用Charles(http://www.charlesproxy.com/)這樣的工具檢查了http調用?這絕對是調試此類問題的最佳方式。

+0

謝謝,我已經發布了端到端的解決方案,但是這將是一個很好的資源。 –

0

嘗試添加該代碼

Security.allowDomain("*"); 
Security.loadPolicyFile("http://domain.com/crossdomain.xml"); 

和了解這裏給出使用的crossdomain.xml鏈接:上述https://stackoverflow.com/a/9728845/2234089

+0

謝謝,我發佈了最終解決方案,但該鏈接中的信息將是一個很好的資源。 –