zoukankan      html  css  js  c++  java
  • 安全沙箱冲突:Loader.content:XX 不能访问 XX 可以通过调用 Security.allowDomain 来避免此冲突。

    参考资料:http://tieba.baidu.com/p/882855105

    感谢:Z0287yyy

    感谢分享精神。

    具体解决方案:
    在loader去load的时候,带上这个参数

    var context:LoaderContext = new LoaderContext();
    context.applicationDomain = new ApplicationDomain();    //这个是关键
    context.checkPolicyFile = true;
    context.securityDomain = SecurityDomain.currentDomain;

    Loader.load(new URLRequest(url), context);

    原文如下:


    如题,最近遇到这么一个难题:
    SecurityError: Error #2121: 安全沙箱冲突:LoaderInfo.content:XXX1不能访问XXX2.
    可以通过调用 Security.allowDomain 来避免此冲突。
    这个问题,其实很搞笑,因为跟Security.allowDomain没有任何关系。
    (也可能有,请高手留言斧正。)

    因为我在主文件XXX1和子文件XXX2里面有写了
    Security.allowDomain("*");
    Security.allowInsecureDomain("*");
    而且crossdomain.xml文件都在。
    具体解决方案:
    在loader去load的时候,带上这个参数

    var context:LoaderContext = new LoaderContext();
    context.applicationDomain = new ApplicationDomain();    //这个是关键
    context.checkPolicyFile = true;
    context.securityDomain = SecurityDomain.currentDomain;

    Loader.load(new URLRequest(url), context);

    context.applicationDomain = new ApplicationDomain();
    的时候会指定新的域,与原有的flex程序域不同,所以不会出问题了。


    ApplicationDomain 的说明:


    加载到子域(模块)
    类似于“继承”,子域可以直接获得父域所有的类定义,反之父域得不到子域的。和继承关系不同的是,如果子域中有和父域同名的类,子域定义会被忽略而使用父域的定义。

    加载到同域(运行时共享库)

    类似集合里的合并关系。被加载swf里的所有类定义被合并到当前域中可以直接使用。和加载到子域相同,和当前域同名的定义也会被忽略。

    加载到新域(独立运行的程序或模块)
    swf载入指定域之前,先要检查该域及其父域中是否存在同名类,重复定义一概忽略。如果加载别人写的程序,或者使用旧版本的主程序加载新版本的模块,为避免类名冲突就要加载到新域独立运行以使用自己的类。

     
    当然flash加载flex,或者flex加载flash就没有这个问题。
    因为flash和flex的空间可能就不同。

    只有flex加载flex会出现这个问题。。稀烂。。。

    另外,
    context.applicationDomain = new ApplicationDomain(ApplicationDomain.currentDomain);
    也是不行的。。。他意味着加载到同一个有域,,有冲突,(程序可能会卡在这个地方)
  • 相关阅读:
    「日常训练」Single-use Stones (CFR476D2D)
    「日常训练」Greedy Arkady (CFR476D2C)
    「Haskell 学习」二 类型和函数(上)
    「学习记录」《数值分析》第二章计算实习题(Python语言)
    「日常训练」Alena And The Heater (CFR466D2D)
    Dubbo 消费者
    Dubbo 暴露服务
    Rpc
    git fail to push some refs....
    Spring Cloud (6)config 客户端配置 与GitHub通信
  • 原文地址:https://www.cnblogs.com/yelaiju/p/3494797.html
Copyright © 2011-2022 走看看