对于Flex应用程序来说,crossdomain.xml文件是否必须访问服务器?

时间:2013-06-07 04:45:05

标签: flex flex4 cross-domain flex4.5 flex4.6

在我的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 个答案:

答案 0 :(得分:2)

  

是否必须存在crossdomain.xml才能访问   服务器?

没有。基于浏览器的SWF需要与服务器位于不同的域。但是,从同一域提供的SWF不需要crossdomain.xml。部署在浏览器外部的Flash Platform应用程序,作为AIR应用程序或移动应用程序,不需要跨域文件来访问服务器。

  

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

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

  

服务器可能必须访问它的默认限制   数据,如果我们不放置crossdomain.xml?

是的,但我还没有说过。 SWF服务于同一域,因为服务器可以访问该域上的文件/服务。服务于不同域名的SWF不能。

例如,位于http://mydomain.com/mySWF.swf的SWF将能够毫无问题地访问http://mydomain.com/service/MyServiceEndPointhttp://mydomain.com/someImage.gif。它将无法访问http://myOtherDomain.com/service/MyServiceEndPointhttp://myOtherDomain.com/someImage.gif