arcgis flex api 由于沙箱安全的原因 无法显示地图 的解决办法

在使用arcgis flex api做地图的时候,调用自己本机的地图服务。代码如下

<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:esri="http://www.esri.com/2008/ags" xmlns:mx="library://ns.adobe.com/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 "http://www.macromedia.com/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.

你可能感兴趣的:(api,Flex,application,domain,library,encoding)