首页 / 浏览问题 / 三维GIS / 问题详情
s3m图层使用代理地址,iserver/service前面的url被干掉了
1EXP 2024年01月05日
我的代理地址是: http://10.1.53.241:2107/api/gismap/iserver/services/3D-T510100ChengDuShidem/rest/realspace/datas/T510100%E6%88%90%E9%83%BD%E5%B8%82@dem_Terrain/config

但是使用viewer.scene.open加载时,在浏览器发起的请求变成了http://10.1.53.241:2107/iserver/services/......

iserver/service 前面的api/gismap被自动删掉了吗?

1个回答

您好

http://10.1.53.241:2107/iserver/services/ 这种格式的才是常规的服务地址

您的代理地址应该是自动转换了
4,151EXP 2024年01月05日
大佬您好,我们后端需要 识别 http://10.1.53.241:2107/api/gismap去做转发并作监控,如果ip没有带 api/gismap 那就无法转到iserver的地址去,

api/gismap丢失这种情况还是 我们这边的问题吗

感谢大佬回复

问题记录: 

const promise1 = viewer.scene.open(url, undefined, {
    customRequestHeaders: {
      'X-AppCode': 'WEBSITE'
    }
  } as any)

因为我添加了customRequestHeaders,第一个请求scenes.json的请求没有丢失api/gismap,可以请求到数据,但是下面请求子图层就丢失了api/gismap,是否在超图的代码中获取子图层信息是获取url的根ip再拼接/iserver/services生成的,这就导致了ip后面的api/gismap被截掉了?求大佬解惑

是 scene.addS3MTilesLayerByScp(url,{ name: name, customRequestHeaders: { "token":token, "apptoken":apptoken } }) 这样吗

customRequestHeaders需要配合server来使用的
viewer.scene.open和scene.addS3MTilesLayerByScp都可以添加customRequestHeaders自定义参数,大佬您说的'需要配合server来使用的'是什么意思呢
意思就是用iserver发布的服务

例如:  terrainProvider = new Cesium.CesiumTerrainProvider({
          customRequestHeaders:{
                "Authorization": token    

          },
          url:"/api/terrain/terrainTile/" + terrainName + "/",
          isSct:false,
        });

需要用到iserver发布的地形服务的token

如果不是iserver的服务,需要 您自己去配置一下web.xml文件,不然会解析不到
收到,谢谢大佬
...