本文只描述现象与处理措施,不讨论原理。

开发过程中遇到此异常,查询后网上说是跨域访问的问题,给出的解决方案是通过JQuery的跨域访问机制来解决,

难道我需要直接找ArcGISTiledMapServiceLayer相关代码,去重构吗?

还有给出的解决方案如下,http://resources.arcgis.com/en/help/rest/apiref/config.html,大意就是要设置一下ArcGIS Server服务,可服务是别人的,设置不了。

代码如下,在地图类型切换时需要调用另一个网址,就报出了如下错误。

if (tp == "mp") {
//移除之前
map.removeLayer(basemap);
//地图
basemap = new ArcGISTiledMapServiceLayer("http://xxx.xxx.xxx.xxx.xxx.xxx");
$("#mptype").val("mp");
map.addLayer(basemap);
}

实际上两个图层域名是差不多的,不知道为什么出现这个问题。

后来尝试了下,在地图初始化的时候就实例化两个ArcGISTiledMapServiceLayer,在地图切换的时候进行图层的添加、删除,不进行实例化,即解决问题。

大致代码如下:

function loadMap(lnt,lat,zo0o) {
zoom=zo0o;
require(["esri/map", "esri/toolbars/navigation", "esri/layers/ArcGISTiledMapServiceLayer"], function (Map, Navigation, ArcGISTiledMapServiceLayer) {
options = { logo: false,
fadeOnZoom: true,
slider: true,
sliderPosition: "bottom-left",
sliderStyle: "large"
};
iniLat = lat;
iniLnt = lnt;
map = new esri.Map("mapDiv", options);
basemap = new ArcGISTiledMapServiceLayer("http://xxx.xxx.xxx.xxx");
annolayer = new ArcGISTiledMapServiceLayer("http://bb.bbb.ccc.ddd");
map.addLayer(annolayer);
spatialReference = map.spatialReference; map.on("mouse-down", function (evt) {
console.log(evt.mapPoint.x.toFixed(3) + "," + evt.mapPoint.y.toFixed(3));
}); map.centerAndZoom(new esri.geometry.Point(lnt, lat), zoom);
navToolbar = new Navigation(map);
});
}

地图切换代码修改如下:

function MapTypeSwitch(tp){
require(["esri/map", "esri/layers/ArcGISTiledMapServiceLayer", "esri/config"], function (Map, ArcGISTiledMapServiceLayer, esriConfig) {
esriConfig.defaults.io.corsDetection = false;
if (tp == "mp") {
//移除之前
$("#mptype").val("mp");
map.removeLayer(annolayer);
map.addLayer(basemap);
} });
}

ArcGIS Javascript 异常之No 'Access-Control-Allow-Origin' header的更多相关文章

  1. Access control allow origin 简单请求和复杂请求

    原文地址:http://blog.csdn.net/wangjun5159/article/details/49096445 错误信息: XMLHttpRequest cannot load http ...

  2. 解决js ajax跨越请求 Access control allow origin 异常

    // 解决跨越请求的问题 response.setHeader("Access-Control-Allow-Origin", "*");

  3. FK JavaScript:ArcGIS JavaScript类库加载不成功而导致的程序异常

    现象:页面加载时,有时候成功,有时候出错,出错的地方为init.js 加载esri的类库 经过仔细对比,发现出错时dojo加载的类库中,对象的很多属性都为undefined,而加载成功时,该对象的相关 ...

  4. ArcGIS JavaScript + 天地图API之显示混乱

     异常描述: (1)ArcGIS JavaScript 调用天地图WMTS服务,出现了这种混乱的效果,加载不完整. (2)昨天是相关瓦片的请求,Google浏览器显示的是请求失败.当时怀疑是无线网络的 ...

  5. SELINUX、Security Access Control Strategy && Method And Technology Research - 安全访问控制策略及其方法技术研究

    catalog . 引言 . 访问控制策略 . 访问控制方法.实现技术 . SELINUX 0. 引言 访问控制是网络安全防范和客户端安全防御的主要策略,它的主要任务是保证资源不被非法使用.保证网络/ ...

  6. 诅咒JavaScript之----ArcGIS JavaScript 点聚合 ClusterLayer

    对一个之前一直做winForm的 菜鸟来说,突然接触这么神奇的语言,基本上每天都会诅咒一下这门神奇的语言. 最近做了一个小网站,底图用的是天地图的服务,用ArcGIS JavaScript提供的一些G ...

  7. Server-Side Access Control

    Firefox 3.5 implements the W3C Access Control specification.  As a result, Firefox 3.5 sends specifi ...

  8. Difference between ID and control.ClientID OR why use control.ClientID if I can access control through ID

     https://stackoverflow.com/questions/3743582/difference-between-id-and-control-clientid-or-why-use-c ...

  9. Arcgis Javascript API 开发笔记

    JS API3.4的要求 à(1)  IE9或以上版本 否则dijit1.8.3不匹配 1.如何发布ArcgisJavascript API应用 0.准备工作: (1).有web应用: (2).有js ...

随机推荐

  1. tnsnames.ora 监听配置文件详解

    今天是重要的一天.将XML数据导入ORACLE遇到很多问题,学了好多,其中很长时间花在网络配置上,刚开始学,具体原因不知道,先把搜集到的好文章存下来,以后慢慢研究. 监听配置文件            ...

  2. SQL..如何用命令删除数据库中所有的表?

    要删除所有的用户表: declare @sql varchar(8000) SELECT @sql='drop table ' + name FROM sysobjects WHERE (type = ...

  3. loadrunner取出字符串的后面几位

    Action() {    char *phonenum;    int k=1;    phonenum=lr_eval_string("{phoneNum}");//参数化获取 ...

  4. NDK各版本下载

    含r8e,r9d,r10c 其中x86_64代表64位系统 官网上只有最新版下载链接,如果想要下载以前的版本,可打开 https://archive.org/web/ 然后输入 http://deve ...

  5. windows加入path路径

    右键我的电脑,属性:高级系统设置,高级,环境变量:在系统变量中选path,编辑:将python安装路径加入即可(注意分号):

  6. PHP之数据类型

    1.PHP字符串(String):一个字符串是一串字符的序列,就像"Hello world!":可以将任何文本放在单引号和双引号中: <?php $x="Hello ...

  7. DOM--6 向应用程序中加入ajax

    组合技术 适当的ajax时对已有技术和下列思想的组合 语义化(X)HTML标记 文档对象模型(DOM) JavaScript XML 不同浏览器中,公共XMLHttpRequest方法 open(me ...

  8. css:删除:×的效果

    常常要使用的显示删除效果: DEMO

  9. 移动网站中,用canvas,svg比用图片好?

    1.Svg可以单独作为文件打开,在AI里做矢量图形,保存图层路径,即可另存为Svg文件. (1) Path语法:命令+参数.大写字母表示坐标参数为绝对位置,小写字母表示坐标参数为相对位置(即上次画笔结 ...

  10. wpf ,tooltip的style

    <Style x:Key="MyToolTipStyle" TargetType="ToolTip"> <Setter Property=&q ...