我有一台从亚马逊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