当前位置: 首页 > 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.gsyq.cn/news/27587.html

相关文章:

  • 直流电机生产线厂家口碑榜:TOP3企业综合实力全景解析
  • 终于开通博客啦!
  • 工业主板:智慧工业时代的 “硬核大脑”
  • 2025 年冷凝器源头厂家最新推荐榜:优选凸显高真空稳定运行优势,助力企业精准选购平板/片式/方形/搪瓷方形/搪瓷方形平板冷凝器厂家推荐
  • 为什么现在入行 Salesforce 更难了?真相在这里
  • Android 资源适配踩坑记:为什么我的设备匹配不上对应的 `values-wXXXdp-hXXXdp`?
  • Acrobat Pro DC 2025.001.20813绿色版
  • 费用流(直接应用)
  • 深入解析:服务器被攻击了怎么办
  • 2025 年10月深圳市激光雕刻机厂家解析,基于专业技术及市场分析
  • QT实现DockWidget内部组件自动换行布局
  • 2025 蛋白/8秒液体/发膜推荐榜:玛丝兰 5 星领跑,这些修护力出众的品牌值得囤!西安悦己容凭技术实力登顶
  • 2025年知名的雕塑推荐TOP品牌企业 - Di
  • 2025 聚焦重庆标书制作服务品质:重庆睿标通领衔,工程/建筑/市政/物业服务标书制作专业机构推荐​
  • Spring - 教程
  • 2025 年最新推荐!集装箱拖车供应厂家权威榜单重磅发布,全方位解析优质厂家实力助企业选对合作伙伴
  • 实战案例 | 利用山海鲸可视化软件,构建制造业数字孪生监控大屏
  • 【IEEE出版 | 往届4年稳定EI检索 | 高录用、稳定检索】第五届无线通信、网络与物联网国际学术会议(WCNIoT 2025)
  • SS251021B. 箱客思 做题记录 - 邻补角
  • 1.51.0 mm LTCC低通,DC-3.7 GHz,带内插损≤0.6 dB,军工温宽——国产HT-LFCG-3700+(Pin-to-Pin替代LFCG-3700+)
  • Pandas 深入学习【3】材料标准化处理 StandardScaler
  • web预览tif格式文件踩坑
  • 电网不平衡条件下DFIG风力发电机动态建模与控制
  • C#实现CRC8、CRC16、CRC32校验算法
  • 完整教程:leetcode_138 随机链表的复制
  • 成功案例分享|ArmSoM CM5赋能海洋保育,边缘AI守护鲸豚之声
  • 复矩阵的QR分解
  • Maven-继承与聚合 - 实践
  • 千疮百孔的心被恨与悲彻底剥离 Kill my memory 让我将快乐全忘记
  • 权威调研榜单:天津全屋定制整体橱柜方案TOP4榜单好评深度解析