Как добавить заголовок http в запросы openlayers3?

Как я могу вставить заголовок http в каждый запрос слоя карты?

В этом случае мне нужно отправить заголовок аутентификации для данного уровня и источника, но я также могу отправить и другие заголовки.

Поиск кода и документов не дал никаких подсказок.

1 ответ

Решение

Ответил на github.

По умолчанию загрузка изображений происходит следующим образом: img.src = ' http://example.com/tile.png'; - то есть мы устанавливаем атрибут src изображения в URL-адрес изображения. В этом случае у вас нет возможности установить заголовки для запроса.

Вы можете переопределить это поведение, вызвав source.setTileLoadFunction (customLoader). Это предполагает, что вы работаете с источником "мозаичного изображения". Тогда вы несете ответственность за определение пользовательского загрузчика. Эта функция будет вызываться с ol.ImageTile и строковым URL.

Остальное зависит от тебя. Ваш пользовательский загрузчик может выглядеть примерно так:

function customLoader(tile, src) {
  var client = new XMLHttpRequest();
  client.open('GET', src);
  client.setRequestHeader('foo', 'bar');
  client.onload(function() {
    var data = 'data:image/png;base64,' + btoa(unescape(encodeURIComponent(this.responseText));
    tile.getImage().src = data;
  });
  client.send();
}
Другие вопросы по тегам