ashx 跨域_Geoserver跨域终极解决方案

在其他程序调用使用Geoserver时,可能会遇到跨域

Access to XMLHttpRequest at ‘http://localhost:8080/geoserver/gwc/service/tms/1.0.0/KylinWS:TestSC@EPSG:900913@pbf/8/203/150.pbf’ from origin ‘http://localhost:18189’ has been blocked by CORS policy: No ‘Access-Control-Allow-Origin’ header is present on the requested resource.

以使用太乐地图WebGIS开发平台进行开发为例,

在使用太乐地图WebGIS开发平台 for Mapboxgl时,调用geoserver的MBtiles,遇到跨域的问题,导致地图看不到

Chrome中F12开发者模式中看到的错误

太乐地图mapboxgl示例页面也看不到地图

这是因为Geoserver或tomcat没有开启允许跨域访问。

两种方式发布GeoServer,分别是Jetty与Tomcat

两种方式跨域 cross origin 解决方法不同,看完继续看第三种解决方法

Jetty发布的解决方法

方法2:Tomcat发布的Geoserver跨域解决方法

To add CORS headers, I simply added to $CATALINA_HOME/conf/web.xml the following lines:

CorsFilter

org.apache.catalina.filters.CorsFilter

cors.allowed.origins

*

CorsFilter

/*

最后一种解决方法:

方法3:使用代理

自己写一个proxy.php,proxy.ashx,proxy.xxx

网上有许多代理的文章

跨域开启后,geoserver的矢量瓦片地图地图可以访问了

顺便分享一下太乐地图WebGIS开发平台访问geoserver的mbtiles的代码

var map, threeLayer, position = [104.07898, 30.66147];

mapboxgl.accessToken = 'pk.eyJ1IjoiYWhvY2V2YXIiLCJhIjoiRk1kMWZaSSJ9.E5BkluenyWQMsBLsuByrmg';

var simple = {

"version": 8,

"sprite":"http://" + window.location.host +"/examples/data/mbstyle/ArcTilerWeb/sprites/sprite",

"glyphs": "http://" + window.location.host + "/examples/data/mbstyle/ArcTilerWeb/fonts/{fontstack}/{range}.pbf",

"sources": {

"composite": {

"url": "mapbox://mapbox.mapbox-terrain-v2",

"type": "vector"

},

"esri": {

"type": "vector",

"scheme": "tms",

"tiles": [

"http://localhost:8080/geoserver/gwc/service/tms/1.0.0/KylinWS:TestSC@EPSG:900913@pbf/{z}/{x}/{y}.pbf"

]

},

},

"layers&#

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值