2016-03-07 3 views
0

Привет JavaScript гуру,Safari 9 XMLHttpRequest Blob загрузить файл

мне нужна функциональность загрузки файла с использованием XMLHttpRequest (с responseType = "сгустка"), который работает в Safari 9+.

На данный момент я использую FileSaver.js так:

var xhr = new XMLHttpRequest(); 
 
xhr.open('GET', url, true); 
 
xhr.responseType = 'blob'; 
 
xhr.onreadystatechange = function() { 
 
    if (xhr.readyState == 4) { 
 
    // using FileSaver.js to save blob 
 
    saveAs(xhr.response, filename); 
 
    // notify download finished, resolve promise 
 
    defer.resolve(true); 
 
    } 
 
}; 
 
xhr.send();

который отлично работает во всех основных браузерах, но не в текущей версии (9.x) в Safari. Я получаю сообщение «Не удалось загрузить ресурс: прервана загрузка кадра». Обычно загрузка - это zip-файл, но я также пытался установить «application/octet-stream».

У меня есть одно требование: мне нужно знать, когда загрузка закончится на стороне клиента, поэтому использование iframe не является вариантом (я думаю).

Я благодарен за любую подсказку, как загрузить файл в Safari с помощью XHR (без Flash).

Спасибо, Chris

ответ

Смежные вопросы