如何将令牌从 Openlayers ImageArcGisRest 传递到 ArcGis MapServer

How to pass token to ArcGis MapServer from Openlayers ImageArcGisRest

我正在尝试使用 Openlayers ImageArcGisRest 在 ArcGis Map Server 的 openlayers 地图上添加图层。我必须将令牌传递给函数,因为应用程序使用令牌身份验证。

我发现如果我先登录到地图服务器,地图可以正常加载。当我将 Postman 与令牌一起使用时,它也 returns 数据,所以我知道令牌很好。当我尝试给它一个标记时它似乎坏了,我认为这与我的语法有关。我有其他图层可以正常工作,所以我知道它不是稍后设置地图代码。

var token = _my_token;
 var url =`http://myserver.com/webadaptor/rest/services/MyMapName/MapServer?token=`+token;
 this.baselayers =
   new ImageLayer({
     source: new ImageArcGISRest({
       ratio: 1,
       params: {
         LAYERS: this.visibleMapIds //("show:1,2,3")
       },
       url: url
    })
  });

我也试过:

var token = my_token;
 var url =`http://myserver.com/webadaptor/rest/services/MyMapName/MapServer/`;
this.baselayers =
      new ImageLayer({
        source: new ImageArcGISRest({
          ratio: 1,
          params: {
            token: my_token,
            LAYERS: this.visibleMapIds //("show:1,2,3")
          },
        url: url
      })
});

我在尝试 运行 任一选项时收到此错误: "Assertion failed. See https://openlayers.org/en/v5.3.0/doc/errors/#50 for details."

我真的只需要知道您如何传递令牌,但 ArcGis 的文档并不是最有帮助的。

这只是语法错误。下面的代码工作正常:

var token = my_token;
var url =`http://myserver.com/webadaptor/rest/services/MyMapName/MapServer/`;
this.baselayers =
  new ImageLayer({
    source: new ImageArcGISRest({
      ratio: 1,
      params: {
        TOKEN: my_token,
        LAYERS: this.visibleMapIds //("show:1,2,3")
      },
    url: url
  })
});