在使用arcgis flex api做地图的时候,调用自己本机的地图服务。代码如下
<?xml version="1.0" encoding="utf-8"?><s:Application xmlns:fx="/mxml/"xmlns:s="library:///flex/spark"xmlns:esri="//ags"xmlns:mx="library:///flex/mx"minWidth="955" minHeight="600"><fx:Declarations><!-- 将非可视元素(例如服务、值对象)放在此处 --></fx:Declarations><esri:Map ><esri:ArcGISDynamicMapServiceLayer id="map" url="http://roamer-acer:8399/arcgis/rest/services/test/basic/MapServer" /></esri:Map></s:Application>
地图图层没有显示。
通过安装flash player debug版本发现,是泡茶安全沙箱错误。
解决办法如下:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE cross-domain-policy SYSTEM "/xml/dtds/cross-domain-policy.dtd" > <cross-domain-policy> <site-control permitted-cross-domain-policies="all" /> <allow-access-from domain="*" /> <allow-http-request-headers-from domain="*" headers="*"/> </cross-domain-policy>
把以上代码保存为 crossdomain.xml.
由于arcgis 9.3 server是以REST方式发布服务,所以当需要允许外域访问arcgis 服务时,同样需要设置跨域
crossdomain.xml放置的目录是{arcgis安装目录}/ArcGIS/java/web_output
其他场景的时候使用 crossdomain.xml
crossdomain.xml文件必须放置在域的根目录处,以
tomcat为例,文件需放置在webapps/ROOT 下
IIS则放在C:/inetpub/wwwroot.