IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> Cesium调用天地图的新问题 -> 正文阅读

[开发测试]Cesium调用天地图的新问题

在开发CSTK 的过程中,尝试在Cesium上加载天地图,这个过程在2021年的年中已经解决了。 使用了网上的代码

viewer = new Viewer("cesiumContainer", {
            // imageryProvider: imageryProvider,
            // imageryProvider: imgMap,
            baseLayerPicker: hasBaseLayerPicker,
            scene3DOnly: endUserOptions.scene3DOnly,
            requestRenderMode: true,
            imageryProvider: new WebMapTileServiceImageryProvider({
                url: tdtUrl + "img_w/wmts?service=wmts&request=GetTile&version=1.0.0&LAYER=img&tileMatrixSet=w&TileMatrix={TileMatrix}&TileRow={TileRow}&TileCol={TileCol}&style=default&format=tiles&tk=YOURKEY",
                layer: "tdtImgLayer",
                style: "default",
                format: "image/jpeg",
                tileMatrixSetID: "GoogleMapsCompatible", //使用谷歌的瓦片切片方式
                subdomains: subdomains,
                show: true
            }),
        });

但是目前不知何种原因,从外部网站cstk.qctech.ltd无法从天地图服务器取到数据。按F12进入调试状态,发现天地图服务器返回错误信息403 ,Forbiddened.

用浏览器直接请求瓦片,发现没有问题

于是,猜想Cesium发送数据请求,是否设置某些HTTP头字段时发生错误。祭出postman发现一个有趣的现象:如果请求头里面没有设置cookie. 天地图的服务器返回如下错误信息

当设置了cookie信息,POSTMAN能正确取到图像数据

那么我们想到一个思路,在Cesium发送请求天地图的数据请求时,让xmlRequestHeader带上cookie信息。

如何让Cesium发送的请求附带cookie呢? 有个办法就是将天地图的域名添加到“可信任服务器里面”

TrustedServers.add(t0.tianditu.gov.cn,80);
TrustedServers.add(t1.tianditu.gov.cn,80);
TrustedServers.add(t2.tianditu.gov.cn,80);
TrustedServers.add(t3.tianditu.gov.cn,80);
TrustedServers.add(t4.tianditu.gov.cn,80);
TrustedServers.add(t5.tianditu.gov.cn,80);
TrustedServers.add(t6.tianditu.gov.cn,80);
TrustedServers.add(t7.tianditu.gov.cn,80);

通过上面的设置,Cesium代码将xhr.withCredentials 设置为true.???这次查看发送请求头,发现里面的确包含了Cookie.?

继续报错:大概的意思是,请求端发送了Cookie, 那么服务端返回的响应头里面应该类似这样设置

Access-Control-Allow-Origin: cstk.qctech.ltd? ? 而不是Access-Control-Allow-Origin: *

查了一些关于跨域的资料,才知道一个事实,如果请求端的请求头携带了cookie,那么服务端不应该返回带*的Access-Control-Allow-Origin。? ?POSTMAN不是一个标准的浏览器,所以上面是被它带到沟里面了。

只有通过后端处理,才解决天地图加载的问题。

如果有人知道如何依赖前端技术解决,希望可告知

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2022-02-14 21:28:40  更:2022-02-14 21:31:10 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 2:45:22-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码