2010-11-16 46 views
0

我正在制作Flash杂志。当杂志加载时,它开始为页面提取所有需要的图像。但是,我遇到了一个奇怪的安全问题:S。让我试着解释...URLLoader中的Flash安全异常(子域问题)

这一切是如何在服务器上设置:

mydomain.com/view.html   <--- the main page that embeds /swf/theviewer.swf 
mydomain.com/swf/theviewer.swf <--- the magazine viewer 

mydomain.com/img/img01.jpg  <- 
mydomain.com/img/img02.jpg  <-- 
mydomain.com/img/img03.jpg ... <--- all the images that the mag fetches 

该杂志“hard'编码总是从获取的图像” mydomain.com/img/* ”。

如果我打开我的浏览器,并导航到'http://mydomain.com/view.html',那么所有的东西都会很整齐。

但是,如果我改用'http://WWW.mydomain.com/view.html',查看器会抛出一个安全异常(实际上是URLLoader抛出它)。

有人可以帮我弄清楚发生了什么事吗?

UPDATE:

我已经正确设置我的crossdomain.xml文件允许* .mydomain.com来

而且,我给自己定 '的allowScriptAccess' 来导航特殊。 仍然有同样的问题。

还有另一件事,一对测试该网站的朋友说,当用Firefox打开网站时,这种情况不会发生(一切正常),但是如果我使用Firefox,错误就在那里。也许这与浏览器自己的安全策略有关。

+0

改变你的allowScriptAccess为“总是”,而不是“sameDomain”。域名匹配似乎是您在这里的主要问题... – exoboy 2010-11-16 23:45:56

+0

设置为始终 – almosnow 2010-11-17 00:51:43

回答

1

您可能有跨域安全问题。由于域的根目录是相同的,但其中一个不包含“www”,所以SWF(或您的html/javascript)可能会将其视为不同的域,因为它不完全匹配。

这是关于我在说什么的文章。 http://blancer.com/tutorials/30030/quick-tip-a-guide-to-cross-domain-policy-files/

此外,请确保您的“allowScriptAccess”属性设置为“sameDomain”或“always”。这里是一个相关的文章,以及.. http://kb2.adobe.com/cps/164/tn_16494.html

+0

没有工作:( – almosnow 2010-11-16 22:46:37

+0

您是否将跨域放在根目录中?它必须位于您的网站所在的根目录中。另外,当我去到你的页面时,它给了我一个安全错误#2170,这肯定是一个安全沙箱错误,但是没有看到你的代码,很难猜出错误发生了什么。 ://help.adobe.com/en_US/air/reference/html/runtimeErrors.html – exoboy 2010-11-16 22:53:16

+0

现在,当我转到任一链接时,出现同样的错误。尝试将您的跨域行从* .mydomain.com更改为: exoboy 2010-11-16 23:00:27