news 2026/3/7 1:12:34

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
开发问题】GeoServer 跨域问题解决方案

eoserver 默认是没有开启跨域配置的,我们在启动了 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 脚本即可。

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

配置跨域

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

jetty-servlets-9.4.57.v20241219.jar和jetty-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 自己版本一定是兼容的。

修改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 包而报错。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/7 1:07:27

全球股市估值与太空采矿技术的经济可行性

全球股市估值与太空采矿技术的经济可行性关键词&#xff1a;全球股市估值、太空采矿技术、经济可行性、市场分析、投资潜力摘要&#xff1a;本文深入探讨了全球股市估值与太空采矿技术经济可行性之间的关联。首先介绍了研究的背景、目的、预期读者和文档结构&#xff0c;对相关…

作者头像 李华
网站建设 2026/3/5 0:18:47

PMSM负载估计:文献复现之旅

PMSM负载估计 负载转矩预测文献复现 永磁同步电机负载转矩估计、PMSM负载转矩测量、负载预测、转矩预测的MATLAB/simulink仿真模型&#xff0c;模型包可运行&#xff0c;配套9页的英文文献&#xff0c;部分章节已截图。 负载估计方法包括卡尔曼滤波、离散卡尔曼滤波、Luenberge…

作者头像 李华
网站建设 2026/3/3 13:08:31

打造三菱PLC自动售货机系统:从搭建到实现

三菱PLC自动售货机系统&#xff0c;系统才用三菱GXworks2软件&#xff0c;GTdesigner3触摸屏软件编写&#xff0c;包含plc触摸屏&#xff0c;io表&#xff0c;原理图&#xff0c;流程图&#xff0c;接线图&#xff0c;报告等在自动化控制领域&#xff0c;三菱PLC以其稳定性和强…

作者头像 李华
网站建设 2026/3/4 1:07:52

通达信共振指标成功率80%

{}月K:"KDJ.K"(89,3,3),COLOR00FF00; 月D:"KDJ.D"(89,3,3),COLOR00FF00,LINETHICK2; 周K:"KDJ.K"(27,3,3),COLORRED; 周D:"KDJ.D"(27,3,3),COLORRED,LINETHICK2; 日K:"KD.K"(5,3,3),COLORWHITE; 日D:"KD.D"(5,3,3…

作者头像 李华
网站建设 2026/3/5 21:08:19

Thinkphp和Laravel教室租赁自习室预约vue

目录具体实现截图项目开发技术介绍PHP核心代码部分展示系统结论源码获取/同行可拿货,招校园代理具体实现截图 本系统&#xff08;程序源码数据库调试部署讲解&#xff09;带文档1万字以上 同行可拿货,招校园代理 Thinkphp和Laravel教室租赁自习室预约vue 项目开发技术介…

作者头像 李华
网站建设 2026/3/6 16:59:41

计算机Java毕设实战-基于springboot的闲置资产管理系统的设计与实现基于SpringBoot的闲置固定资产管理系统【完整源码+LW+部署说明+演示视频,全bao一条龙等】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华