在我的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,服务器访问其数据是否有任何默认限制?
请告诉我你的答案。
crossdomain.xml是否必须在那里才能访问服务器?
。对于位于与服务器不同的域上的基于浏览器的SWF来说,这是必需的。但是,来自同一域的SWF不需要crossdomain.xml位置。部署在浏览器外部的Flash平台应用程序(如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
。