3

这是我放在同一个文件夹中的 crossdomain.xml Web.config

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
    <site-control permitted-cross-domain-policies="all"/>
    <allow-access-from domain="*" secure="false" />
    <allow-http-request-headers-from domain="*" headers="*" />
</cross-domain-policy>

虽然我可以使用Security.loadPolicyFile("http://localhost:52090/crossdomain.xml").

当我的 swf 尝试与我的本地站点 (asp.net mvc) 通信时,它说:

错误 #2048:违反安全沙箱:http://localhost:52090/Content/Swf/MyApp.swf 无法从 localhost:52090 加载数据

我该如何解决?

4

2 回答 2

2

由于您as3httpclientlib基于 使用它Socket,而不是URLLoader您应该设置套接字策略服务器而不是 http 一个(因此crossdomain.xml在这种情况下您不被 flash 使用)。

要设置 Flash 策略服务器,您可以使用本文http://www.adobe.com/devnet/flashplayer/articles/socket_policy_files.html中的 perl 脚本和 @Bart Friederichs 建议的策略 xml(带to-ports属性)

于 2013-06-28T13:09:34.123 回答
1

试试这个:

<?xml version="1.0"?>
<cross-domain-policy>
  <site-control permitted-cross-domain-policies="all"/>
  <allow-access-from domain="*" to-ports="*" />
</cross-domain-policy>

另外,如果您自己发送,请确保最后发送一个空字符

于 2013-06-28T12:10:20.673 回答