我有一個flash應用坐在domainA中,需要加載來自Amazon S3存儲桶的swf。 載入時出現以下錯誤。 "Error #2044: Unhandled securityError:. text=
「從AmazonS3加載swf - 跨域策略
我已經把桶中的一個跨域文件,並推測會做的伎倆。 我怎樣才能解決這個問題?
我有一個flash應用坐在domainA中,需要加載來自Amazon S3存儲桶的swf。 載入時出現以下錯誤。 "Error #2044: Unhandled securityError:. text=
「從AmazonS3加載swf - 跨域策略
我已經把桶中的一個跨域文件,並推測會做的伎倆。 我怎樣才能解決這個問題?
您可以使用存儲區名稱DNS訪問S3。所以,而不是s3.amazon.com/bucketname/filename它是bucketname.s3.amazon.com/filename。使用這種方法,你可以把自己的跨域文件的根路徑
<allow-access-from domain="bucketname.s3.amazonaws.com" />
的更好的方法是你的DNS服務器上使用CNAME記錄僞造根爲您的跨域文件。例如
在您的DNS服務器上創建CNAME記錄,將bucketname.yourdomainname.com指向bucketname.s3.amazon。COM
然後把你的跨域文件在水桶根
<allow-access-from domain="bucketname.yourdomainname.com" />
,並參考閃文件作爲bucketname.yourdomainname.com/flash.swf等
感謝,與CNAME變化去 - 工作一種享受。 – Chin 2010-03-03 00:06:06
你的跨域文件需要使用閃光燈的應用程序,是做服務器上加載,而不是它在加載文件,則指定S3域允許的域
<allow-access-from domain="s3.amazonaws.com" />
編輯:。好吧,我正式困惑
看來JB在對他的評論中是正確的,因爲它錯了。從here:
每當Flash Player 7中檢測 出的域數據加載請求, 玩家試圖找到它試圖 加載數據的服務器上的策略文件 。如果策略文件存在 ,並且授予訪問製作 請求的Flash影片的原始域名 ,則操作成功。
但是,我們做我們的客戶的網站之一這個確切的事情(將圖像載入從遠程亞馬遜的服務器中的閃存組件),但我們crossdomain.xml
文件是在加載Web服務器,亞馬遜的根存儲桶不包含任何策略文件。
那麼我們的網站是如何工作的呢?根據文件,它不應該!
編輯2
按照沃特的評論,我做的是這可以解釋爲什麼我的作品,即使我的跨域文件是放錯了地方的特殊情況......
加載swf文件與加載數據不完全相同。所以你可能需要的不僅僅是crossdomain.xml。要查看crossdomain.xml文件的位置,我建議使用「嗅探」工具(如httpfox)來查看Flash Player正在查找文件的位置。
要允許來自不同域的swf進行交互,還需要撥打Security.allowDomain
。詳細信息請參見the adobe docs on cross-scripting。
你有什麼的'跨域。 xml'文件? – 2010-02-25 10:06:53
允許所有域。 cross-domain-policy> cross-domain-policy> –
Chin
2010-02-25 11:54:17