在我的flex应用程序中,war与crossdomain.xml策略文件一起打包。
<?xml version="1.0" encoding="UTF-8"?>
<cross-domain-policy>
<allow-access-from domain="*" to-ports="*"/>
</cross-domain-policy>
此处提到的条目表示来自任何/所有域的SWF文件都可以访问服务器数据。
我的问题是
是否需要使用crossdomain.xml来访问服务器?
如果我们在SWF文件访问服务器以获取数据时没有crossdomain.xml策略文件会发生什么?
如果我们不放置crossdomain.xml,服务器可能有访问其数据的默认限制吗?
请说,请帮我解答。
答案 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/MyServiceEndPoint
或http://mydomain.com/someImage.gif
。它将无法访问http://myOtherDomain.com/service/MyServiceEndPoint
或http://myOtherDomain.com/someImage.gif
。