AGS API for JS代理页的使用
AGS API for JS代理页的使用
1、概述
代理页即使用后端语言编写的请求转发页面,部署在Web应用端。客户端请求先发送到该代理页,代理页再将该请求转发到服务器处理,服务器处理结果再经代理页转发到客户端。
使用代理页的几种情况:
(1)Web应用部署的服务器与服务所在服务器不同,即存在跨域。
(2)避免将token暴露到客户端。
(3)Web应用最终用户非ArcGIS平台用户。
(4)超出URL地址长度限制(默认2048个字符)。
2、代理页配置与使用
根据后端语言不同,代理页有三种:ASP.NET、Java/JSP、PHP。下载地址见:
https://github.com/Esri/resource-proxy/releases
2.1、代理页配置
将解压后的java文件夹复制到web服务器中,如tomcat/wabapps下。
(1)proxy.config配置
|
参数 |
说明 |
|
mustMatch=true |
只有匹配的URL才走代理。 |
|
logFile="本地绝对路径" |
日志文件存储路径。 |
|
logLevel=" SEVERE|WARNING|INFO|CONFIG|FINE|FINER|FINEST" |
日志等级设置。 |
|
allowedReferers="http://server.com/application1,https://server.com/application2" |
只有匹配的客户端url才走代理。 |
|
<serverUrl> |
定义需要代理的服务配置。 |
|
url="" |
可使用根url,但matchAll需设置为false。 |
|
matchAll="true" |
是否必须匹配。 |
|
username |
与token服务联合使用。 |
|
password |
与token服务联合使用。 |
|
tokenServiceUri |
token服务访问地址。 |
|
clientId |
与OAuth认证联合使用。 |
|
clientSecret |
与OAuth认证联合使用。 |
|
oauth2Endpoint |
与OAuth认证联合使用。默认值:https://www.arcgis.com/sharing/oauth2/ |
|
rateLimit |
特定客户端IP发送的最大请求数,周期由rateLimitPeriod定义。 |
|
rateLimitPeriod |
默认60分钟。 |
(2)取消web服务器文件列表功能
为保证proxy.config文件的安全,需关闭Web服务器文件列表功能,可通过url测试:
http://[yourmachine]/proxy/proxy.config
2.2、代理页使用
(1)方法1
esriConfig.defaults.io.proxyUrl = "<url_to_proxy>"
esriConfig.defaults.io.alwaysUseProxy = false;
其中esriConfig需要引入esri/config模块。
(2)方法2
使用代理规则,即定义资源url前缀,请求URL与规则中定义的前缀匹配时使用代理页。
urlUtils.addProxyRule({
urlPrefix: "route.arcgis.com",
proxyUrl: "<url_to_proxy>"
});
其中urlUtils需要引入esri/urlUtils模块。
2.3、测试
可使用url地址测试:
http://[yourmachine]/Java/proxy.jsp?http://services.arcgisonline.com/ArcGIS/rest/services/?f=pjson
AGS API for JS代理页的使用的更多相关文章
- 大熊君学习html5系列之------History API(SPA单页应用的必备)
一,开篇分析 Hi,大家好!大熊君又和大家见面了,(*^__^*) 嘻嘻……,这系列文章主要是学习Html5相关的知识点,以学习API知识点为入口,由浅入深的引入实例, 让大家一步一步的体会" ...
- arcgis api for js入门开发系列二十打印地图的那些事
前面我写过关于利用arcgis api for js打印地图的,但是打印地图服务都是基于arcgis server发布的,arcgis api加载在线地图,比如天地图.百度地图.高德地图等,底图都是打 ...
- arcgis api for js 地图查询
arcgis api for js入门开发系列四地图查询(含源代码) 上一篇实现了demo的地图工具栏,本篇新增地图查询功能,包括属性查询和空间查询两大块,截图如下: 属性查询效果图: 空间查询效 ...
- arcgis api for js入门开发系列四地图查询(含源代码)
备注:由于实现本篇功能的需求,修改了地图数据的dlsearch.mxd,然后更新了地图服务,需要的在文章最后有提供最新的mxd以及源代码下载的 上一篇实现了demo的地图工具栏,本篇新增地图查询功能, ...
- arcgis api for js入门开发系列一arcgis api离线部署
在我的GIS之家QQ群里,很多都是arcgis api for js开发的新手,他们一般都是GIS专业的学生,或者从计算机专业刚刚转向来的giser,他们难免会遇到各种webgis开发的简单问题,由于 ...
- AGS API for JavaScript 图表上地图
原文:AGS API for JavaScript 图表上地图 图1 图2 图3 -------------------------------------华丽丽的分割线--------------- ...
- arcgis api for js入门开发系列十一地图统计图
上一篇实现了demo的叠加SHP图层,本篇新增地图统计图,截图如下: 地图统计图实现的思路如下:利用拓展arcgis api的js文件(MapChartGraphic.js以及MapChartGrap ...
- 转:arcgis api for js入门开发系列四地图查询
原文地址:arcgis api for js入门开发系列四地图查询 arcgis for js的地图查询方式,一般来说,总共有三种查询方式:FindTask.IdentifyTask.QueryTas ...
- Arcgis API for JS——打印控件乱码
在通过Arcgis API for JS编写打印控件进行地图下载时,总发现地图字体乱码,如下图: 解决方法: 在装有ArcGIS Server,要调用服务的电脑或服务器上找到下图文件夹
随机推荐
- ReactNative常用命令
常用命令整理备忘 创建项目: react-native init myProject 安装RN初始化命令: yarn add react-native-cli 引用组件: npm install re ...
- v-model和v-bind的区别
VUE学习篇1 Mustache (双大括号写法)不能在 HTML 属性中使用,应使用 v-bind 指令: <div v-bind:id="dynamicId">&l ...
- linux的sed(增删改查)使用方法
sed的增删改查的基本操作 参考:https://www.cnblogs.com/0zcl/p/6855740.html 01:增(a) 2个sed命令,分别是:(这些操作都是在内存中进行的,所以不会 ...
- [Alpha]Scrum Meeting#1
github 本次会议项目由PM召开,时间为4月1日晚上10点30分 时长10分钟 任务表格 人员 昨日工作 下一步工作 木鬼 - 撰写初版技术规格说明书(issue#1) - 撰写初版功能规格说明书 ...
- 进阶篇:3.9)3d打印件设计
本章目的:了解3d打印,购买3d打印机. 1.3d打印基础知识: 现在主流的3d打印技术有4种:①FDM:②SLA:③SLS:④3DP.具体如下: ①熔融沉积造型(Fused deposition m ...
- springcloud(二)-最简单的实战
技术储备 Spring cloud并不是面向零基础开发人员,它有一定的学习曲线. 语言基础:spring cloud是一个基于Java语言的工具套件,所以学习它需要一定的Java基础.当然,sprin ...
- du及df命令的使用
在本文中,我将讨论 du 和 df 命令.du 和 df 命令都是 Linux 系统的重要工具,来显示 Linux 文件系统的磁盘使用情况.这里我们将通过一些例子来分享这两个命令的用法. du 命令 ...
- 移远EC20的使用
一 发短信 3. 推荐短信流程3.1 查询 短信存储区AT+CPMS?+CPMS: "ME",19,255,"ME",19,255,"ME" ...
- Nearest Common Ancestors(LCA板子)
题目链接:http://poj.org/problem?id=1330 Nearest Common Ancestors Time Limit: 1000MS Memory Limit: 1000 ...
- openerp学习笔记 按客户电话、名称模糊查找选择客户(name_search)及客户名称自定义显示(name_get)
#同时按手机.电话.名称模糊查找选择客户 def name_search(self, cr, user, name, args=None, operator='ilike', context=N ...