Cesium访问Tomcat部署的数据文件遇到跨域问题的解决

Cesium可以直接访问网络上符合OGC标准的数据服务,有些服务可以用Tomcat直接部署,有些可以发布到Geoserver上面,本文主要讲访问Tomcat服务时出现的跨域问题解决方法。关于不同GIS数据(比如要素图层、倾斜数据、bim数据等发布成Cesium可以自由加载的数据,在另一篇文章中单独介绍)

Cesium是开源js库,数据通过Tomcat发布,当在js库中直接访问数据时,js程序和数据可以在一台电脑上,也可以在不同电脑上,如果在同一台电脑,直接通过相对路径即可访问,通过ip地址访问也不存在跨域问题,如果在不同电脑上,就可能出现跨域问题。访问数据时错误提示如下:
No ‘Access-Control-Allow-Origin’ header is present on the requested resource

解决办法:
1.下载jar包:地址:https://download.csdn.net/download/wqy248/10967103
2.到tomcat安装的服务器上找到tomcat目录,一般显示如下:
在这里插入图片描述
到lib目录下把刚才下载的两个jar包复制进去
3.修改conf文件夹中的web.xml文件,在最后加入:

<filter>
  <filter-name>CORS</filter-name>
  <filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>
    </filter>
 <filter-mapping>
        <filter-name>CORS</filter-name>
        <url-pattern>/*</url-pattern>
 </filter-mapping>

在这里插入图片描述
4.重启tomcat

至此问题解决。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Cesium 是一个用于构建基于 WebGL 的地理信息系统(GIS)应用程序的开源软件库。私有化部署 Cesium 服务器主要是将 Cesium 应用程序部署在自己的服务器上,而不是使用 Cesium 的在线服务。私有化部署可以提供更好的控制和安全性,并允许在内部网络环境中运行 Cesium 应用程序。 跨域问题是在运行 Cesium 应用程序时可能遇到的一种常见问题。跨域是指在不同域名或端口之间进行数据交换时的安全限制。由于安全原因,现代 Web 浏览器通常阻止来自不同域的资源的加载或脚本的执行。 要解决 Cesium 跨域问题,可以采取以下几种方法: 1. 设置服务器HTTP响应头:在私有化部署的服务器上,可以通过设置HTTP响应头来允许特定的跨域请求。常见的设置是将 "Access-Control-Allow-Origin" 头设置为允许的域名,以允许特定的来源跨域请求。 2. 使用反向代理服务器:可以将 Cesium 服务器配置在某个反向代理服务器后面,使用反向代理服务器来处理跨域请求。反向代理服务器可以在服务器和客户端之间转发请求,并在响应中设置适当的跨域头信息。 3. JSONP:JSONP 是一种通过在前端动态生成脚本标签,从而绕过跨域限制的技术。可以通过在 Cesium 应用程序中使用 JSONP 请求来实现跨域数据交换。 4. WebSocket:WebSocket 是一种在客户端和服务器之间建立持久连接的通信协议。使用 WebSocket 可以避免跨域问题,并实现实时的双向通信。 总的来说,私有化部署 Cesium 服务器可以提供更高的控制和安全性,而跨域问题可以通过设置服务器响应头、使用反向代理、JSONP 或 WebSocket 等技术来解决
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值