ArcGIS Javascript 异常之No 'Access-Control-Allow-Origin' header
本文只描述现象与处理措施,不讨论原理。
开发过程中遇到此异常,查询后网上说是跨域访问的问题,给出的解决方案是通过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的更多相关文章
- Access control allow origin 简单请求和复杂请求
原文地址:http://blog.csdn.net/wangjun5159/article/details/49096445 错误信息: XMLHttpRequest cannot load http ...
- 解决js ajax跨越请求 Access control allow origin 异常
// 解决跨越请求的问题 response.setHeader("Access-Control-Allow-Origin", "*");
- FK JavaScript:ArcGIS JavaScript类库加载不成功而导致的程序异常
现象:页面加载时,有时候成功,有时候出错,出错的地方为init.js 加载esri的类库 经过仔细对比,发现出错时dojo加载的类库中,对象的很多属性都为undefined,而加载成功时,该对象的相关 ...
- ArcGIS JavaScript + 天地图API之显示混乱
异常描述: (1)ArcGIS JavaScript 调用天地图WMTS服务,出现了这种混乱的效果,加载不完整. (2)昨天是相关瓦片的请求,Google浏览器显示的是请求失败.当时怀疑是无线网络的 ...
- SELINUX、Security Access Control Strategy && Method And Technology Research - 安全访问控制策略及其方法技术研究
catalog . 引言 . 访问控制策略 . 访问控制方法.实现技术 . SELINUX 0. 引言 访问控制是网络安全防范和客户端安全防御的主要策略,它的主要任务是保证资源不被非法使用.保证网络/ ...
- 诅咒JavaScript之----ArcGIS JavaScript 点聚合 ClusterLayer
对一个之前一直做winForm的 菜鸟来说,突然接触这么神奇的语言,基本上每天都会诅咒一下这门神奇的语言. 最近做了一个小网站,底图用的是天地图的服务,用ArcGIS JavaScript提供的一些G ...
- Server-Side Access Control
Firefox 3.5 implements the W3C Access Control specification. As a result, Firefox 3.5 sends specifi ...
- 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 ...
- Arcgis Javascript API 开发笔记
JS API3.4的要求 à(1) IE9或以上版本 否则dijit1.8.3不匹配 1.如何发布ArcgisJavascript API应用 0.准备工作: (1).有web应用: (2).有js ...
随机推荐
- Blog Starting...
30出头,开始Blog记录学习生活的点滴,待40时再回来一看.
- 圆形图片CircleImageView
github源码路径: https://github.com/hdodenhof/CircleImageView 第一步:将CircleImageView复制 第二步:将attrs.xml复制 第三步 ...
- 【hibernate】 hibernate的主键策略
今天使用maven生成一个sping+springMVC+hibernate 的项目,报错如下: 错误提示呢:不能解释这个id的生成策略[uuid.string].就是uuid.string这个hib ...
- 《DSP using MATLAB》示例Example4.7
ROC分三种情况:
- 解决Kali Linux没有声音
解决Kali Linux没有声音 Kali Linux系统默认状态下,root用户是无法使用声卡的,也就没有声音.启用的方法如下: (1)在终端执行命令:systemctl --user enab ...
- 20145223《Java程序设计》第5周学习总结
20145223 <Java程序设计>第5周学习总结 教材学习内容总结 ·由于在编程的时候会遇到因各种原因而导致的错误,于是我们可以使用"try"."catc ...
- fzu月赛 2203 单纵大法好 二分
Accept: 8 Submit: 18Time Limit: 5000 mSec Memory Limit : 65536 KB Problem Description 人在做,天在看 ...
- Spring Data JPA 查询方法支持的关键字
Table 2.3. Supported keywords inside method names Keyword Sample JPQL snippet And findByLastnameAndF ...
- 两个app 的合并
我们需要把两个app 合并在一起,就是在原有项目基础上添加一个功能使用.如下有项目a和项目b: 一开始,我们把项目b独立成一个module,然后,作为一个库给项目a调用. 问题是,项目b 已有的app ...
- The 2015 China Collegiate Programming Contest C. The Battle of Chibi hdu 5542
The Battle of Chibi Time Limit: 6000/4000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Othe ...