ArcGIS_API_For_JavaScript本地部署及跨域问题解决方法

Esri提供了在线版本的ArcGIS API For JavaScript,方便开发者调用。但在有些项目中,由于某些原因不能访问外网,因此有必要在局域网中部署一条ArcGIS API For JavaScript。

本篇博客中使用Tomcat来作为Web应用服务器。Java JDK和Tomcat的安装配置可参考我的另外一篇博客,也可在百度上搜索相关的教程。

首先呢,需要从官方网站上下载最新的API(此处以4.10版本为例),然后将其解压,拷贝到tomcat安装目录下的webapp文件夹中,目录结果如下图所示。
ArcGIS_API_For_JavaScript本地部署及跨域问题解决方法_第1张图片
arcgis_js_api\library\4.10文件夹中,分别编辑init.jsdojo\dojo.js文件,将这里两个文件中的[HOSTNAME_AND_PATH_TO_JSAPI]替换为10.10.10.10/arcgis_js_v410_api/arcgis_js_api/library/4.10/,其中10.10.10.10是机器的IP地址,arcgis_js_v410_api/arcgis_js_api/library/4.10/为基于webapp文件夹访问init.js的路径。
在浏览器中输入https://10.10.10.10/arcgis_js_v410_api/arcgis_js_api/library/4.10/dojo/dojo.js ,如果可以访问表示,JS API配置成功。

到了这一步JS API已经在Tomcat中部署好了,如果此时在前端调用,会发现地图的放大或缩小等其他按钮图标不能正常显示,此时我们需要对Tomcat做进一步的跨域处理。

下载Tomcat配置跨域所需的文件(链接:https://pan.baidu.com/s/1uV6MsQH6SUaA8RTC2qOQdQ ,提取码:dedj),然后将加压后的文件夹中的cors-filter-2.5.jar和java-property-utils-1.9.1拷贝到tomcat的lib文件夹内,然后编辑conf文件夹中的web.xml,在250行左右添加如下内容。

    
    CORS    
    com.thetransactioncompany.cors.CORSFilter    
        
        cors.allowOrigin   
        *   
        
        
        cors.supportedMethods   
        GET, POST, HEAD, PUT, DELETE   
        
        
        cors.supportedHeaders   
        Accept, Origin, X-Requested-With, Content-Type, Last-Modified   
        
        
        cors.exposedHeaders   
        Set-Cookie   
        
        
        cors.supportsCredentials   
        true   
        
    
    
    CORS    
    /*    

配置web.xml文件后,重启tomcat服务。然后刷新前端页面,如果能够访问到正常的图标文件,表示ArcGIS API For JavaScript可以正常使用了。

你可能感兴趣的:(开发)