ArcGIS_API_For_JavaScript本地部署及跨域問題解決方法

Esri提供了在線版本的ArcGIS API For JavaScript,方便開發者調用。但在有些項目中,由於某些原因不能訪問外網,因此有必要在局域網中部署一條ArcGIS API For JavaScript。

本篇博客中使用Tomcat來作爲Web應用服務器。Java JDK和Tomcat的安裝配置可參考我的另外一篇博客,也可在百度上搜索相關的教程。

首先呢,需要從官方網站上下載最新的API(此處以4.10版本爲例),然後將其解壓,拷貝到tomcat安裝目錄下的webapp文件夾中,目錄結果如下圖所示。
webapp目錄結構
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行左右添加如下內容。

<filter>    
    <filter-name>CORS</filter-name>    
    <filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>    
    <init-param>    
        <param-name>cors.allowOrigin</param-name>   
        <param-value>*</param-value>   
    </init-param>    
    <init-param>    
        <param-name>cors.supportedMethods</param-name>   
        <param-value>GET, POST, HEAD, PUT, DELETE</param-value>   
    </init-param>    
    <init-param>    
        <param-name>cors.supportedHeaders</param-name>   
        <param-value>Accept, Origin, X-Requested-With, Content-Type, Last-Modified</param-value>   
    </init-param>    
    <init-param>    
        <param-name>cors.exposedHeaders</param-name>   
        <param-value>Set-Cookie</param-value>   
    </init-param>    
    <init-param>    
        <param-name>cors.supportsCredentials</param-name>   
        <param-value>true</param-value>   
    </init-param>    
</filter>    
<filter-mapping>    
    <filter-name>CORS</filter-name>    
    <url-pattern>/*</url-pattern>    
</filter-mapping>

配置web.xml文件後,重啓tomcat服務。然後刷新前端頁面,如果能夠訪問到正常的圖標文件,表示ArcGIS API For JavaScript可以正常使用了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章