如何向 openlayers3 请求添加 http header?
How to add a http header to openlayers3 requests?
如何将 http header 注入到每个地图图层请求中?
在这种情况下,我需要为给定的图层和源发送身份验证 header,但我可能还想发送其他 header。
搜索代码和文档时没有找到任何线索。
默认情况下,图片加载是这样的:img.src = 'http://example.com/tile.png'; - 即我们将一个Image的src属性设置为图片url。在这种情况下,您没有机会为请求设置 headers。
您可以通过调用 source.setTileLoadFunction(customLoader) 来覆盖此行为。这假设您正在使用 "tile image" 来源。然后由您负责定义自定义加载程序。将使用 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();
}
如何将 http header 注入到每个地图图层请求中?
在这种情况下,我需要为给定的图层和源发送身份验证 header,但我可能还想发送其他 header。
搜索代码和文档时没有找到任何线索。
默认情况下,图片加载是这样的:img.src = 'http://example.com/tile.png'; - 即我们将一个Image的src属性设置为图片url。在这种情况下,您没有机会为请求设置 headers。
您可以通过调用 source.setTileLoadFunction(customLoader) 来覆盖此行为。这假设您正在使用 "tile image" 来源。然后由您负责定义自定义加载程序。将使用 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();
}