Мне нужно загрузить zip-файл в OpenLayers через OpenLayers.Protocol.HTTP. Я хочу загрузить его и разархивировать с помощью jszip. Поскольку я хочу загрузить двоичные данные, мне нужно изменить mimeType XMLHttpRequest. Jszip пример говорит, что это работает так:Загрузка двоичных данных через XMLHttpRequest в OpenLayers
var xhr1 = new XMLHttpRequest();
xhr1.open('GET', '../test/ref/text.zip', true);
if (xhr1.overrideMimeType) {
xhr1.overrideMimeType('text/plain; charset=x-user-defined');
}
xhr1.onreadystatechange = function(e) {
if (this.readyState == 4 && this.status == 200) {
var zip = new JSZip(this.responseText);
var elt = document.getElementById('xhr1_way');
elt.innerHTML = "<p>loaded ! (as a " + (typeof this.responseText) + ")</p>";
elt.innerHTML += "<p>Content = " + zip.file("Hello.txt").asText();
}
};
К сожалению OpenLayers класса использует XMLHttpRequest (OpenLayers.Request.XMLHttpRequest) не имеет функции overrideMimeType. Когда я пытаюсь разархивировать загруженные данные без установки типа mime, я получаю сообщение об ошибке «Конец достигнутых данных (длина данных = 23798955, указана index = 24968701). Поврежденный zip?», Поэтому похоже, что почтовый индекс загружен неправильно , Любые предложения по решению этой проблемы?