2

我有一个托管在 www.example.com 的 Flash 应用程序,它试图从我的 Amazon S3 存储桶中提取资产http://s3.example.com

我有一个 crossdomain.xml 文件,它在存储桶的根级别是世界可读的。s3.example.com/crossdomain.xml

该 crossdomain.xml 文件的内容如下:

    <?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="*.example.com" />  
    <allow-http-request-headers-from domain="*.example.com" headers="*" />                        
</cross-domain-policy>    

当我从 www.example.com 运行我的应用程序时,它不会从我的 s3 存储桶中加载资源。在通过wireshark 和httpfox 进行一些请求嗅探后,flash 应用程序似乎在任何时候都没有请求s3.example.com/crossdomain.xml。

任何想法为什么它跳过这个文件?我不需要通过使用它来强制它看起来正确: Security.loadPolicyFile(" http://s3.example.com/crossdomain.xml "); ??

谢谢,布赖恩

4

2 回答 2

1

you topic

http://www.actionscript.org/forums/showthread.php3?t=170572

and this

http://www.actionscript.org/forums/showthread.php3?t=190239

try to compile it for new FP 10.x

and this http://www.adobe.com/devnet/flashplayer/articles/fplayer9_security.html

====================UPDATE=============================

just lets test

<?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="*.*" />  
    <allow-http-request-headers-from domain="*.*" headers="*" />                        
</cross-domain-policy>  

copy crossdomain.xml to example.com root too, i mean htdocs and left s3 with it too.

tell me the versions of each platform/language u r using.

and try to include your latest code row too.

let us know.

于 2010-09-02T20:48:14.320 回答
1

您的 AS2 代码是什么,您要加载什么样的内容?如果可能,您尝试加载的实际 URL 是什么?

如果您尝试加载视频,您可能需要强制跨域加载,例如将 NetStream.checkPolicyFile ( AS2 , AS3 ) 设置为 true。

您可能遇到的另一个错误是当目标服务器将您重定向到另一个 URL(通过 301 重定向)时 - 在某些负载平衡服务(例如 Facebook)中的图像中很常见。发生这种情况时,Flash 不会在重定向后检查策略文件 - 在这种情况下,是的,您必须自己执行 loadPolicyFile()。不过,您只需要执行一次,最好是在应用程序初始化期间进行(它只对跨域加载进行排队,让 Flash 知道可以在需要时加载它)。

于 2010-09-03T15:32:51.600 回答