2010-07-31 142 views
0

我試圖在Web服務器(tomcat 6)上部署我的其他工作的Flex應用程序。它拋出了一個Channel.Security.Error。經過一番研究後,我意識到從flash_movie_domain加載的Flash影片將無法從其他域加載資源。一些人建議添加一個crossdomain.xml。但是,crossdomain.xml路由不太合理。Flash Channel.Security.Error無法訪問遠程資源

在這種情況下,我從第三方網站加載資源。我的理解是,我需要這個第三方網站在其根目錄中包含一個crossdomain.xml以使應用程序正常運行。第三方Web服務按原樣提供。我將無法改變給出的內容。由於第三方提供公共訪問,它已經明確地向公衆提供許可。將crossdomain.xml添加到其根目錄似乎是一種冗餘行爲?

在一天結束時,我需要找出一種方法來從我的域中加載的Flash電影訪問第三方Web服務。謝謝。

回答

0

這聽起來像你已經有你的答案。

此第三方網站將需要添加一個crossdomain.xml文件,該文件將允許Flash Player從此第三方域訪問數據。

我不清楚這個第三方網站是如何爲您提供訪問其數據的權限的。但是,Flash Player放置在瀏覽器的沙盒中。爲了訪問遠程域,crossdomain.xml文件允許Flash Player移出它的沙箱。

說一些事情可以做,沒有什麼多餘的;並提供技術工具來幫助實現目標。

您的替代方案是不從Flash訪問網站。您可能可以使用中介代理來檢索數據並將其發送回flex。但是,這取決於數據的類型。

+0

第三方Web服務向公衆開放。我可以在Local-Trusted沙箱中運行我的Flash應用程序。從這個意義上說,第三方網絡服務的所有者已經隱含地允許公衆服務。通過將我的Flash應用程序移動到遠程沙箱中,Flash Player本身限制了應用程序的訪問,而不是該資源的原始提供程序。基本上,Flash Player要求所有公共網站聲明它們允許通過crossdomain.xml進行某些訪問。 – 2010-07-31 18:56:22

+0

您說過:「基本上,Flash Player要求所有公共網站聲明它們允許通過crossdomain.xml進行某些訪問」這是正確的!我相信這種方法旨在幫助防止跨站點腳本攻擊;但這不是我的專長。 – JeffryHouser 2010-07-31 20:56:19