用于JavaScript的ArcGIS API,NS_ERROR_DOM_BAD_URI:拒绝访问受限URI
ArcGIS API for JavaScript, NS_ERROR_DOM_BAD_URI: Access to restricted URI denied
我遵循以下指南:
https://developers.arcgis.com/javascript/jshelp/intro_agstemplate_amd.html
我正在使用他们在教程中使用的Web地图ID:1a40fa5cc1ab4569b79f45444d728067
然而,当我运行我的代码时:
var map;
require([
"esri/map",
"esri/arcgis/utils",
"dojo/domReady!"
], function(Map, arcgisUtils) {
arcgisUtils.arcgisUrl = "file:///C:/Users/Bryan/Desktop/gis.html";
arcgisUtils.createMap("1a40fa5cc1ab4569b79f45444d728067 ", "mapDiv").then(function(response) {
map = response.map;
});
});
我得到以下错误:
NS_ERROR_DOM_BAD_URI:拒绝访问受限URI
在教程中,他们说:
要从ArcGIS Online之外的门户访问web地图,请参考arcgisUrl属性,并在之前设置门户URL的路径调用createMap()方法:arcgisUtils.arcgisUrl="http://pathto/portal/sharing/content/items";
但是什么是门户网站URL?我的门户URL是什么?
我们将逐步解决上述问题:
首先,您应该知道您的网络地图ID1a40fa5cc1ab4569b79f4544d728067您正在使用它的公共或私人ID。我的意思是每个人都可以访问,或者由创建它的人访问。
正如你所看到的,我可以全局访问这个Id,所以这意味着它不是私有的,所以你不需要添加门户url
(以下是访问网络地图的两种方法,只需替换以下URL末尾的网络地图id即可)。
以上Webmap ID的项目详细信息:单击此处查看Webmap ID详细信息。
地图查看器中的网络地图ID:单击此处可在地图查看器中查看网络地图ID。
只有当网络地图id没有共享给所有人时,才需要门户url。
门户URL:此后,每当您注册arcgis.com时,它都会为每个用户创建一个唯一的门户URL(安装arcgis门户的服务器名称)。只有当网络地图/项目没有共享给所有人时,我们才需要配置这个唯一的url。在这种情况下,它会自动"arcgis在线默认门户url"
现在转到这个在线示例并在那里替换您的网络地图id。它将正常工作。
运行代码:
require([
"dojo/parser",
"dojo/ready",
"dijit/layout/BorderContainer",
"dijit/layout/ContentPane",
"dojo/dom",
"esri/map",
"esri/urlUtils",
"esri/arcgis/utils",
"esri/dijit/Legend",
"esri/dijit/Scalebar",
"dojo/domReady!"
], function(
parser,
ready,
BorderContainer,
ContentPane,
dom,
Map,
urlUtils,
arcgisUtils,
Legend,
Scalebar
) {
ready(function(){
parser.parse();
//if accessing webmap from a portal outside of ArcGIS Online, uncomment and replace path with portal URL
//arcgisUtils.arcgisUrl = "https://pathto/portal/sharing/content/items";
arcgisUtils.createMap("1a40fa5cc1ab4569b79f45444d728067 ","map").then(function(response){
//update the app
dom.byId("title").innerHTML = response.itemInfo.item.title;
dom.byId("subtitle").innerHTML = response.itemInfo.item.snippet;
var map = response.map;
//add the scalebar
var scalebar = new Scalebar({
map: map,
scalebarUnit: "english"
});
//add the legend. Note that we use the utility method getLegendLayers to get
//the layers to display in the legend from the createMap response.
var legendLayers = arcgisUtils.getLegendLayers(response);
var legendDijit = new Legend({
map: map,
layerInfos: legendLayers
},"legend");
legendDijit.startup();
});
});
});
<link rel="stylesheet" href="https://js.arcgis.com/3.16/dijit/themes/claro/claro.css">
<link rel="stylesheet" href="https://js.arcgis.com/3.16/esri/css/esri.css">
<link rel="stylesheet" href="http://developers.arcgis.com/javascript/sandbox/css/styles.css">
<script src="https://js.arcgis.com/3.16/"></script>
<body class="claro">
<div id="mainWindow" data-dojo-type="dijit/layout/BorderContainer" data-dojo-props="design:'headline'" style="width:100%; height:100%;">
<div id="header" class="shadow roundedCorners" data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region:'top'">
<div id="title"></div>
<div id="subtitle"></div>
</div>
<div id="map" class="roundedCorners shadow" data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region:'center'"></div>
<div id="rightPane" class="roundedCorners shadow" data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region:'right'" >
<div id="legend"></div>
</div>
</div>
</body>
- 如何在Edge中下载图像/png数据URI
- Soundcloud api"未捕获的类型错误:无法读取属性'uri'“未定义”;
- Ionic Android“;不支持重定向_ uri”;脸书
- Jquery获取请求Uri太长
- 片段uri's未在浏览器上执行
- 无声声音数据uri
- Fin上传器直接上传到Azure Blob存储-在Javascript中获取文件uri
- Facebook身份验证redirect_uri不是't是绝对URI
- canvas没有从uri中绘制完整的图像
- 有什么方法可以调用外部URI方案吗
- Interent Explorer中的数据URI文件下载
- 追加子数据 URI,替换 IE 中的其他对象
- 节点.js请求库的相对 URI
- 将 JSON 下载为文件:IE-11 抛出 414 请求 URI 太大
- Bad Errors for PropType (React)
- 由于重定向URI无效,Key斗篷令牌请求被拒绝
- PHP(PDO)url编码如何在javascript中解码?decodeURI?或解码URI组件
- 将数据URI保存在cookie中,以便稍后检索
- 如何将URI参数转换为JSON
- 字符串的URI转义