【问题标题】:AS3 Security SandBox ViolationAS3 安全沙盒违规
【发布时间】:2013-02-25 05:23:05
【问题描述】:

我在尝试从浏览器加载游戏时收到此错误消息:

*** Security Sandbox Violation ***
SecurityDomain 'https://playerio.s3.amazonaws.com/competitions/ega2012/swf/Nhm-JFy6dEyuemmaE59BSQ.swf?AWSAccessKeyId=1Q3ETXSFA8S2F2TSA9R2&Expires=1361787227&Signature=TBCVKQDGlxthLj2YhoumxTxUGOo%3D' tried to access incompatible context 'http://cdn.playerio.com/rts-tvkyczvzk5uwqv8z12rw/Game2build29.swf'
SecurityError: Error #2121: Security sandbox violation: LoaderInfo.content: https://playerio.s3.amazonaws.com/competitions/ega2012/swf/Nhm-JFy6dEyuemmaE59BSQ.swf?AWSAccessKeyId=1Q3ETXSFA8S2F2TSA9R2&Expires=1361787227&Signature=TBCVKQDGlxthLj2YhoumxTxUGOo%3D cannot access http://cdn.playerio.com/rts-tvkyczvzk5uwqv8z12rw/Game2build29.swf. This may be worked around by calling Security.allowDomain.
   at flash.display::LoaderInfo/get content()
   at Loader3_fla::MainTimeline/onCompleteHandler()[Loader3_fla.MainTimeline::frame1:86]

它说您可以使用 Security.allowDomain() 解决此错误,但我不确定要允许哪个域!

【问题讨论】:

    标签: actionscript-3 security sandbox


    【解决方案1】:

    您应该将 crossdomain.xml 放在您的项目文件夹中,您可以在其中允许您的应用程序从中获取数据的所有域或某些特定域。

    <?xml version="1.0" ?>
    <cross-domain-policy>
    <allow-access-from domain="*" />
    </cross-domain-policy>
    

    以上适用于所有域,如果您想允许某些特定域:

    <allow-access-from domain="www.mysite.com" />
    <allow-access-from domain="mysite.com" />
    

    【讨论】:

    • 你搞错了 - 跨域文件需要托管在任何请求数据的地方,概述了“允许”从中提取数据的域。
    • 哦,对不起。是的,他应该将 XML 文件放到该服务器(如果可以访问)而不是在他的项目文件夹中。谢谢马蒂提醒我的错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多