缺省状况下flex允许你的站点从本域内检索数据,当然你可能注意到你用flex IDE(例如flex builder)可以从任何地方获取数据,那是因为flash软件给你特别的权限用于调试的目的,一旦当你编译好后放入服务器(localhost或别的域名),这时候flash player就在你的应用内放置安全沙箱,但你访问沙箱以外的数据时,他就会显示security error错误。
比如你从a.com域访问b.com域的数据,这时候你必须在b.com放置跨域权利文件以保证a.com可以访问b.com的数据。
crossdomain.xml
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<site-control permitted-cross-domain-policies="all"/>
<allow-access-from domain="*"/>
</cross-domain-policy>
crossdomain.xml文件必须放置在域的根目录处,以tomcat为例,文件需放置在 webapps/ROOT 下。
判断放置是否成功的方法是访问 http://b.com/crossdomain.xml
由于arcgis 9.3 server同样是以REST方式发布服务,所以当需要允许外域访问arcgis 服务时,同样需要设置跨域
crossdomain.xml放置的目录是 {arcgis安装目录}/ArcGIS/java/web_output