尝试从swf访问远程数据时出现安全性错误

时间:2011-06-15 15:37:10

标签: actionscript-3 security crossdomain.xml

我在域http://domain1.com/myroot/的swf应用程序必须使用域http://domain2.com/myroot2/

中的资源

当swf尝试从辅助域访问资源时,它会获得SecurityError:

  

错误#2048:违反安全沙箱。

出现这种情况是因为我的应用程序默认尝试加载crossdomain.xml(来自http:/domain2.com/crossdomain.xml)。

我的问题是我无法访问domain2.com根目录以将文件放在crossdomain.xml中。我只能把它放在http:/domain2.com/myroot2/目录中。

我的问题是:如何强制我的swf应用程序在http:/domain2.com/myroot2 /中搜索crossdomain.xml?

P.S。 Security.loadPolicyFile(“http://domain2.com/myroot2/crossdomain.xml”)不起作用,因为默认情况下使用metapolicy“master-only”忽略所有Security.loadPolicyFile用法。

2 个答案:

答案 0 :(得分:0)

loadPolicyFile应该这样做

Security.allowDomain( 'http://domain2.com' );
Security.loadPolicyFile( 'http://domain2.com/myroot2/pf.xml' );

答案 1 :(得分:0)

Flash的新沙箱安全性要求您始终在服务器的根目录上拥有跨域策略文件。如果要将子域文件放在子目录中,则根的主跨域文件必须允许在服务器上使用该文件。