openlayes调用arcgis wms服务跨域问题(arcgis server10.2)

在使用ol5调用arcgis wms服务使用canvas导处图片的时候会出现跨域问题。
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的话,可以正常加载图层,但是导出的时候会提示跨域问题;
2.如果放开的话,则地图不会正常显示。

经过自己研究,现将自己解决的过程阐述如下:


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.添加跨域标识:

...\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服务

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HappyPort

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值