openlayes调用arcgis wms服务跨域问题(arcgis server10.2)
在使用ol5調(diào)用arcgis wms服務(wù)使用canvas導(dǎo)處圖片的時候會出現(xiàn)跨域問題。
wms圖層加載方式
new ol.layer.Image({
source: new ol.source.ImageWMS({
crossOrigin: 'anonymous',
ratio: 1,
url: 'http://localhost:6080/arcgis/services/gis/xiaoban/MapServer/WMSServer',
params: {
'FORMAT': 'image/png',
'VERSION': '1.1.0',
'LAYERS': '0',
}
})
})
1.開始的時候如果取消crossOrigin的話,可以正常加載圖層,但是導(dǎo)出的時候會提示跨域問題;
2.如果放開的話,則地圖不會正常顯示。
經(jīng)過自己研究,現(xiàn)將自己解決的過程闡述如下:
1.cors-filter-2.5.jar,java-property-utils-1.10.jar這兩個是跨域的文件,需要放置的位置為:
...\ArcGIS\Server\framework\runtime\tomcat\webapps\arcgis#services\WEB-INF\lib
...\ArcGIS\Server\framework\runtime\tomcat\lib
2.添加跨域標(biāo)識:
...\ArcGIS\Server\framework\runtime\tomcat\webapps\arcgis#services\WEB-INF\web.xml
...\ArcGIS\Server\framework\runtime\tomcat\conf\web.xml
<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>
配置上述之后,先在瀏覽器中查看是否可以正常訪問,如果有異常,嘗試重啟
...\ArcGIS\Server\framework\runtime\tomcat\bin目錄下的
startup.bat或version.bat
arcgis server服務(wù)
總結(jié)
以上是生活随笔為你收集整理的openlayes调用arcgis wms服务跨域问题(arcgis server10.2)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jedis的hscan方法使用方法
- 下一篇: 关于dev c++z中文乱码的问题