@toolen

Как браузеру скачать файл, если веб-сервис отдает его только при наличии в хедере запроса авторизационной информации?

Таким образом, становится невозможно скачать файл путем создания обычной ссылки, а AJAX для скачивания файлов никогда не предназначался. Поскольку сервис отдает файл с mime-type application/octet-stream, то AJAX запрос вернет содержимое бинарного файла в виде строки.
  • Вопрос задан
  • 2433 просмотра
Пригласить эксперта
Ответы на вопрос 2
Kaaboeld
@Kaaboeld
Web-разработчик
Если я правильно понял вашу проблему, то возможное решение - это проксирование запроса к файлу, если кратко:
1. файл лежит на example.com/file.png и при запросе требует хэдер с авторизацией(вам должны быть известны эти данные).
2. на вашем ресурсе вы размещаете ссылку на свой же сайт: myexmaple.com/files_from_other_site/file.png
3. у вас на сервере настроено, что запросы к файлам начинающиеся с пути "files_from_other_site" переправлять на example.com и перед этим подписывать хэдером - curl запрос например.
Ответ написан
@bromzh
Drugs-driven development
Вот тут пример отправки:
var bytesToSend = [253, 0, 128, 1],
    bytesToSendCount = bytesToSend.length;

var bytesArray = new Uint8Array(bytesToSendCount);
for (var i = 0, l = bytesToSendCount; i < l; i++) {
  bytesArray[i] = bytesToSend[i];
}

$.ajax({
   url: '%your_service_url%',
   type: 'POST',
   contentType: 'application/octet-stream',  
   data: bytesArray,
   processData: false
});

Сделай так, только наоборот.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы