套接字:安全沙箱违规

时间:2013-07-08 18:35:52

标签: actionscript-3 flash flex flash-builder

我正在尝试打开我的服务器的套接字,但它不起作用,我总是得到着名的

Error #2044: Unhandled securityError:. text=Error #2048: Security sandbox violation: http://zappy.mydomain.fr/ZappyGraphic.swf cannot load data from zappy.mydomain.fr:4242.

我的域名根目录crossdomain.xml,看起来像这样:

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

在我的actionscript程序中,以下是我加载跨域策略的方法

Security.allowDomain("*");
Security.allowInsecureDomain("*");
Security.loadPolicyFile("http://mydomain.fr/crossdomain.xml");

服务器位于端口4242上的mydomain.fr,swf文件位于http://zappy.mydomain.fr/index.html ...

有人可以启发我吗?

1 个答案:

答案 0 :(得分:1)

似乎你不能在行尾有空格,所以:

<allow-access-from domain="*" secure="false" />

必须

<allow-acces-from domain="*" secure="false"/>

感谢让我浪费时间! :d

而且,正如@Gio让我注意到的那样,你必须配置一个侦听端口843的套接字策略服务器。如果有人需要,这是我的nginx配置:

server {
    listen 843;
    server_name mydomain.fr;
    location / {
        rewrite ^(.*)$ /crossdomain.xml;
    }

    error_page 400 /crossdomain.xml;

    location = /crossdomain.xml {
        root /usr/share/nginx/www/root;
    }
}