1

在我的 flex 应用程序中,war 与 crossdomain.xml 策略文件一起打包。

    <?xml version="1.0" encoding="UTF-8"?>
<cross-domain-policy>
<allow-access-from domain="*" to-ports="*"/>
</cross-domain-policy>

这里提到的条目意味着来自任何/所有域的 SWF 文件都可以访问服务器数据。

我的问题是

  1. crossdomain.xml 一定需要在那里才能访问服务器吗?

  2. 如果我们在 SWF 文件访问服务器以获取数据时没有 crossdomain.xml 策略文件会发生什么?

  3. 如果我们不放置 crossdomain.xml ,服务器可能必须访问其数据是否有任何默认限制?

请帮我解答。

4

1 回答 1

2

crossdomain.xml 是否一定需要在那里才能访问服务器?

不可以。对于位于与服务器不同的域中的基于浏览器的 SWF,它是必需的。但是,从同一个域提供的 SWF 不需要 crossdomain.xml 位置。部署在浏览器外部的 Flash 平台应用程序,作为 AIR 应用程序或移动应用程序,不需要跨域文件即可访问服务器。

如果我们在 SWF 文件访问服务器以获取数据时没有 crossdomain.xml 策略文件会发生什么?

如果 SWF 与服务器在同一个域中提供;那么什么都不会发生。如果 SWF 位于不同的域中,那么您的远程类将分派一个故障事件;这将包含各种安全错误。

如果我们不放置 crossdomain.xml ,服务器可能必须访问其数据是否有任何默认限制?

是的,但我没有说什么。SWF 在与服务器相同的域中提供服务,可以访问该域上的文件/服务。从不同域提供的 SWF 不能。

例如,位于的 SWFhttp://mydomain.com/mySWF.swf将能够访问http://mydomain.com/service/MyServiceEndPointhttp://mydomain.com/someImage.gif没有任何问题。它将无法访问http://myOtherDomain.com/service/MyServiceEndPointhttp://myOtherDomain.com/someImage.gif

于 2013-06-07T11:04:59.553 回答