ArcGIS for JavaScript获取token

当我们的服务ARCGIS发布到外网,但是我们又不希望其他人员访问我们的服务。这时我们就需要对服务的请求进行验证,类似于使用用户名和密码进行登录。相当于先用进行验证,验证成功再响应服务请求。这里就用到了token

一、token信息参数

token信息详见http://resources.arcgis.com/en/help/arcgis-rest-api/index.html#//02r3000000ts000000

PS:需要注意的是请求token过期时间设置expiration参数,单位分钟,但是时间并不是随意设置,token最长时间由服务端控制,当设置的时间分钟数超过最长有效时间时,则以限制最长时间计算

二、token获取

	//获取token方式
	function getToken(url){
        var data={
        	f: 'json',
        	username:'username',
        	password:'password',
        	client:'requestip',
        	referer:'',
        	ip:'',
        	expiration:60*24*10//单位:分钟
        };
        $.ajax({
            url: url,
            type: 'POST',//POST请求
            data:data,
            xhrFields: {
                withCredentials: false
            },
            crossDomain: true,
            success: function(result) {
				var json=jQuery.parseJSON(result);
            	alert("token信息:"+json.token);
            }
        });
	}
获取返回的结果如下:

token为获取的token信息,expires为到期的时间,采用的是时间戳格式。

三、采用代理的方式动态获取token信息

https://github.com/Esri/resource-proxy/releases 下载代理页面,我们只需要proxy.ashx和proxy.config文件,也可选择本文末尾作者提供的实例(建议使用);

4.进入Web工程,将proxy.ashx和proxy.config添加到项目目录,最好和JS文件在同一目录;

5.修改proxy.config:

 
<serverUrl url ="http://192.168.1.6:6080/arcgis/rest/services"
               matchAll="true"
               dynamicToken="true"
               host="192.168.1.6:6080"
               userName="yangtao"
               password="262728"></serverUrl>
 

修改url中ip为GIS服务器ip;host也为GIS服务器ip;userName为在Server里面添加的用户;password为用户密码。

6.在require中设置代理:

esriConfig.defaults.io.proxyUrl = "proxy.ashx";
esriConfig.defaults.io.alwaysUseProxy = true;

alwaysUseProxy为true表示始终使用代理,在测试过程,若底图使用ersi地图,出现错误,用天地图则跳过代理,实现只是对服务使用代理。

 

目录结构:

index.html、proxy.confog和proxy.ashx统计目录,也可以不同级。

proxy.config配置实例:

 
<serverUrl url ="http://192.168.1.6:6080/arcgis/rest/services"
               matchAll="true"
               dynamicToken="true"
               host="192.168.1.6:6080"
               userName="yangtao"
               password="262728" 
               ></serverUrl>
 

客户端调用实例:

 
require(["esri/map", "esri/config", "esri/layers/ArcGISDynamicMapServiceLayer", "extras/TDTRoadLayer", "dojo/domReady!"],
            function (Map, esriConfig, ArcGISDynamicMapServiceLayer, TDTRoadLayer) {
            esriConfig.defaults.io.proxyUrl = "proxy.ashx";
            esriConfig.defaults.io.alwaysUseProxy = true;
            var map = new Map("map", {
                center: [104, 30],
                zoom: 8
            });
            var layer = new TDTRoadLayer();
            map.addLayer(layer);
            var dynamicMapServiceLayer = new ArcGISDynamicMapServiceLayer("http://192.168.1.6:6080/arcgis/rest/services//test/china/MapServer");
            map.addLayer(dynamicMapServiceLayer);
        });
 

 

 注:

1.对于下载的附件,需要修改proxy,config里面的参数(url、host、userName、password四个参数);

2.修改index.html中ArcGISDynamicMapServiceLayer服务地址为正确的可访问服务地址。

 
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
ArcGIS for JavaScript Vue 视频教程是一种通过视频方式来教授如何使用ArcGIS for JavaScript和Vue框架来创建交互式地图应用的教程。 ArcGIS for JavaScript 是一款由Esri开发的用于构建地图应用的JavaScript API。它提供了丰富的地图、图层、遥感影像和空间分析功能,能够帮助开发者构建出功能强大、可视化效果出众的地理信息系统。 Vue是一款流行的JavaScript前端框架,它的核心思想是响应式数据绑定和组件化开发。Vue的主要特点是易学、灵活和高效,它能够帮助开发者更快速地构建出交互式和可重用的界面组件。 ArcGIS for JavaScript Vue 视频教程主要介绍如何结合使用ArcGIS for JavaScript和Vue来创建地图应用。通过视频教程,开发者可以学习如何进行地图初始化、添加图层、展示地图、进行空间查询、添加交互等操作。 这些视频教程通常包括一系列教学视频,每个视频都会重点介绍某个具体的功能或操作。开发者可以按照自己的学习进度逐步学习和实践,从而逐渐掌握如何使用ArcGIS for JavaScript和Vue来构建出自己的地图应用。 通过视频教程,开发者可以更清晰地了解和学习如何使用ArcGIS for JavaScript和Vue。视频教程以实际操作为主,让开发者能够更加直观地理解每个步骤和操作的含义和作用。同时,视频教程也提供了练习和示例代码,方便开发者进行实践和理解。 总之,ArcGIS for JavaScript Vue 视频教程是一种通过视频方式来教授如何使用ArcGIS for JavaScript和Vue框架来创建交互式地图应用的教程,它能够帮助开发者快速学习和掌握这两个优秀的技术,从而构建出功能强大、可视化效果出众的地理信息系统。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值