我有一臺從亞馬遜S3服務器中提取內容的swf one one服務器。我已經建立了,就目前而言,通用的跨域策略以允許所有域的訪問:AS3 LoadPolicyFile函數是否也適用於遠程swfs?
在包含SWF的服務器:
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE cross-domain-policy SYSTEM
"http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="*" />
</cross-domain-policy>
在S3服務器:
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE cross-domain-policy SYSTEM
"http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<site-control permitted-cross-domain-policies="master-only" />
<allow-access-from domain="*" />
<allow-http-request-headers-from domain="*"
headers="SOAPAction" />
</cross-domain-policy>
這些似乎玩得很好(大部分),因爲我的swf現在正好從S3服務器加載json,xml等文件。什麼是不做正確加載從S3服務器的主權財富基金,當它試圖這樣做,它拋出這個異常:
SecurityError: Error #2121: Security sandbox violation: Loader.content: s3.amazonaws.com/bucket_name/swfs/foo.swf cannot access s3.amazonaws.com/bucket_name/data/swfs/bar.swf. This may be worked around by calling Security.allowDomain.
我想這是因爲遠程SWF可能包含惡意可執行代碼。我是否真的需要將allowDomain設置爲某些東西,或者是否有其他更正確的方法來允許我的swf加載其他遠程swfs?
你嘗試調用Security.allowDomain ...?正如錯誤所表明的那樣,這是正確的做法。 – 2012-03-03 11:38:44