在js开发中经常碰到访问本地服务和外网服务的问题,这就需要跨域访问的事情,在ArcGIS的帮助中已经有这方面的介绍和使用配置。
https://developers.arcgis.com/javascript/jshelp/ags_proxy.html
为什么要配置跨域代理呢,有以下几个场景需要进行跨域配置
(1)、所访问的资源和你的应用不在同一个域中Cross Origin Resource Sharing (CORS)跨域资源共享(CORS)是被禁止的
(2)、应用使用的服务是一个有着Token的安全服务,不想安全密钥Token串在网络上传输
(3)、请求超过2048字符,一般是用一个多边形作为输入参数的时候一般都容易超过,这时候必须要代理了
那么如何配置自己的代理服务器呢?
1、获得代理应用资源 https://github.com/Esri/resource-proxy/releases 进入GitHub中下载Esri提供的代理应用
解压够针对不同的平台有不同的代理应用IIS、Java(Tomcat )、PHP
2、代理部署,以IIS为例,直接将DotNet文件夹放到wwwroot目录下即可
(1) IIS部署内容
在ReadME文件中有详细试用IIS部署和测试的内容,首先部署到IIS根目录,然后进行相关测试
最后设置自己相关跨域内容,在Proxy.config文件中配置需要代理的访问资源,如下
在应用程序中指向的代理路径为
2、在你的应用中使用代理设置
可以在程序开始时加入如下
esriConfig.defaults.io.proxyUrl= ""
esriConfig.defaults.io.alwaysUseProxy= false;
或者
urlUtils.addProxyRule({
urlPrefix:"route.arcgis.com",
proxyUrl:""
});
网友评论