0

我需要在“xx.com”服务器上托管我的全闪存SWF站点。但所有图形和声音必须从“yy.com”服务器上加载。需要在服务器上安装SWF,但需要在另一个服务器上安装数据

在我的AS3代码,所有数据通过绝对地址加载,如:

http://yy.com/file1.jpg 
http://yy.com/file2.jpg 

如果我在本地运行的SWF,无论是从Flash创作工具,或本地.html文件中,或者通过双击swf,它工作正常。所有数据均从“yy.com”下载,并且该网站正确显示。

如果我上传“xx.com”上的swf并将其加载到那里,它将不起作用。

我已经创建了如下的crossdomain.xml文件

<?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="*" /> 
</cross-domain-policy> 

,并在

http://yy.com/crossdomain.xml 

结果上传是很奇怪:它似乎开始加载1-2图片关闭“yy.com”,但随后停止。此行为发生在有或没有crossdomain.xml文件。

我试图以某种方式达到目的吗?我的问题是,xx.com的空间非常有限,所以我可以上传swf和/或html,而不是实际的数据(这是很多MB)。

+0

尝试安装Fiddler Web Debugger,如果你在Windows或Charles上,如果你在Mac上。看看是否访问了跨域文件。然后检查资产是否被访问。 – 2012-03-29 20:57:48

+0

你的swf是通过https服务的吗?如果是这样,您需要在cross-domain.xml中使用'secure =“false”' – 2012-03-29 21:11:53

+0

另外,请检查调试器是否提供任何错误 - 通常,如果它是跨域问题,您应该得到调试控制台中抛出的安全沙箱错误。 – 2012-03-29 21:12:42

回答

0

的解决方案是一个LoaderContext添加到负载功能在装载机的对象,像这样:

context = new LoaderContext(true); 
loader.load(new URLRequest(name), context); 

只有这样,是crossdomain.xml文件已检查。

1

尝试使用此作为crossdomain.xml文件。这是我使用的一个,它一直为我工作。它有额外的允许-HTTP请求报头,从节点

<?xml version="1.0"?> 
<!DOCTYPE cross-domain-policy SYSTEM 
"http://www.adobe.com/xml/dtds/cross-domain-policy.dtd"> 

<cross-domain-policy> 
    <site-control permitted-cross-domain-policies="all"/> 
    <allow-access-from domain="*" /> 
    <allow-http-request-headers-from domain="*" headers="*"/> 
</cross-domain-policy> 
1

请务必设置允许所有内您的SWF的

Security.allowDomain("*"); 
相关问题