当前位置: 首页 > news >正文

【开发问题】GeoServer 跨域问题解决方案

by emanjusaka from https://www.emanjusaka.com/archives/geoserver-cross-error 彼岸花开可奈何
本文为原创文章,可能会更新知识点以及修正文中的一些错误,全文转载请保留原文地址,避免产生因未即时修正导致的误导。

博客:https://www.emanjusaka.com
博客园:https://www.cnblogs.com/emanjusaka
公众号:emanjusaka的编程栈

geoserver 默认是没有开启跨域配置的,我们在启动了 geoserver 服务,发布地图图层后。前端项目想要访问服务因为 IP 和端口不一致会造成跨域问题导致我们访问服务报错。

[Error] Cannot load image http://192.168.1.200:8080/geoserver/img/wms?REQUEST=GetMap&SERVICE=WMS&VERSION=1.1.1&FORMAT=image%2Fpng&STYLES=&TRANSPARENT=TRUE&LAYERS=img%3Amap_03dbe5d1&CRS=EPSG%3A4326&serverType=geoserver&WIDTH=1032&HEIGHT=1491&SRS=EPSG%3A4326&BBOX=0.0006271289520698164%2C-0.10890253786480741%2C0.08920439945988232%2C0.019071018653747274 due to access control checks.
[Error] Failed to load resource: Origin http://192.168.1.200 is not allowed by Access-Control-Allow-Origin. Status code: 200 (wms, line 0)

下面给出怎么配置开启 geoserver 允许跨域访问。

下载安装geoserver

官网地址

issue-7-1

一般我们选择稳定版就好了,2.28.0 不再支持 jdk8 了,如果需要 jdk8 的需要下载旧版本的 geoserver。

Nightly 版即夜间构建版,是开发团队通过自动化系统每日编译的软件版本。我们一般不选 Nightly 版本。

image-20251016133539847

这里选第一个就好了,通过 jar 包启动,全平台都可用。

下载后文件目录如下图所示:

image-20251016133718737

进入bin目录里面有启动脚本,Windows 平台启动 bat 脚本,Mac/Linux 平台启动 sh 脚本即可。

默认启动是不支持跨域的,下面我们来配置跨域。

配置跨域

  1. 进入 geoserver 目录下的 lib 文件夹,将其中的

    jetty-servlets-9.4.57.v20241219.jarjetty-util-9.4.57.v20241219.jar

    复制到 geoserver/webapps/geoserver/WEB-INF/lib

    image-20251016134415366

image-20251016134425437

这里有文章说去别的地方去下载这两个jar 包然后放到webapps/geoserver/WEB-INF/lib下,这里是没必要去下载的,geoserver 中已经包含有这两个 jar包了,复制过去就好了。自己去下载还要考虑版本问题,用 geoserver 自己版本一定是兼容的。

  1. 修改geoserver/webapps/geoserver/WEB-INF目录下的 web.xml 文件

    可以直接新增以下配置

        <filter><filter-name>cross-origin</filter-name><filter-class>org.eclipse.jetty.servlets.CrossOriginFilter</filter-class><init-param><param-name>chainPreflight</param-name><param-value>false</param-value></init-param><init-param><param-name>allowedOrigins</param-name><param-value>*</param-value></init-param><init-param><param-name>allowedMethods</param-name><param-value>GET,POST,PUT,DELETE,HEAD,OPTIONS</param-value></init-param><init-param><param-name>allowedHeaders</param-name><param-value>*</param-value></init-param></filter><filter-mapping><filter-name>cross-origin</filter-name><url-pattern>/*</url-pattern></filter-mapping>
    

    也可以打开 web.xml 配置文件中的注释,这些配置已经存在了只不过是被注释了。

    image-20251016135403929

    image-20251016135444700

    其中一部分配置大概位置在 143 行到 162 行。剩下的在 197 行到 162 行。

    这里要注意只需要打开通过 Jetty 配置跨域,通过 Tomcat 配置跨域不需要打开。因为我们只复制了 Jetty 相关的 jar包,如果打开了 Tomcat 的配置会因为缺少 jar 包而报错。

http://www.jsqmd.com/news/19631/

相关文章:

  • 2025 年折叠机源头厂家最新推荐榜,聚焦技术创新与服务能力的优质品牌深度剖析环卫/移动马桶/医疗垃圾桶折叠袋折叠机厂家推荐
  • 昆山工厂装修设计公司口碑榜:TOP3企业综合实力全景解析
  • 2025 年云手机服务平台最新推荐榜,聚焦技术实力与市场口碑深度解析云手机办公 / 系统 / 工具 / 多开设备推荐
  • 远程安全提示再升级!隐私屏开启位置突出、可录入被控锁屏... - 详解
  • 2025 年选客服系统必看:为什么头部企业都在用这几款客服系统?
  • 2025无氧干燥设备选购必看!覆盖真空/洁净/高温烘箱,三家靠谱厂家大盘点
  • 直流电机生产线厂家口碑榜:TOP3企业综合实力全景解析
  • Elasticsearch 快照同机 异机备份到 MinIO(Java 实现)
  • 【51单片机篮球记分器+复合按键操作】2022-12-22 - 指南
  • 基于setbuf的ret2libc
  • 终于开通博客啦!
  • C++函数重载与函数模板
  • 2025 年冷凝器源头厂家最新推荐榜:优选凸显高真空稳定运行优势,助力企业精准选购平板/片式/方形/搪瓷方形/搪瓷方形平板冷凝器厂家推荐
  • WPS内部版
  • 2025 年管道生产厂家最新推荐排行榜:聚焦多行业适配需求,甄选技术领先、口碑优良的企业搪玻璃/搪瓷三通/搪瓷塔节/搪瓷弯头管道厂家推荐
  • npm ERR! chromedriver@2.46.0 install: `node install.js`
  • Java 实现 MySQL 同机 异机自动备份到 MinIO(附完整代码)
  • 为什么现在入行 Salesforce 更难了?真相在这里
  • Android 资源适配踩坑记:为什么我的设备匹配不上对应的 `values-wXXXdp-hXXXdp`?
  • Acrobat Pro DC 2025.001.20813绿色版
  • 微信小程序学习(二) - 实践
  • 费用流(直接应用)
  • jsoup解析本地html网页到本地——Document、Element、select应用
  • 深入解析:服务器被攻击了怎么办
  • 2025 年10月深圳市激光雕刻机厂家解析,基于专业技术及市场分析
  • 2025年比较好的离心风机,防爆风机厂家推荐及采购指南
  • Maven 不建议 利用 systemPath 引用本地文件jar
  • QT实现DockWidget内部组件自动换行布局
  • 2025年知名的工业防锈漆厂家最新推荐榜 - Di
  • UMDF驱动开发入门:二 详解INF文件与设备类选择