Я авторизуюсь на сайте из IE. Как скачать файл через консоль браузера? Пробую следующий сниппет - выдается ошибка. По сути действие js-кода аналогично сохранению файла вручную. Такое ощущение что js-качает сам по себе, а не использую куки браузера.
https://www.gosuslugi.ru/api/lk/v1//orders/428297648/history/1083114266/files/SUxT/download 401 (Unauthorized)
...
function download(url, fileName) {
var xhr = new XMLHttpRequest();
xhr.open('GET', url, true);
xhr.responseType = 'blob';
xhr.onprogress = function(event) {
if (event.lengthComputable) {
var percentComplete = (event.loaded / event.total)*100;
//yourShowProgressFunction(percentComplete);
}
};
xhr.onload = function(event) {
if (this.status == 200) {
_saveBlob(this.response, fileName);
}
else {
//yourErrorFunction()
}
};
xhr.onerror = function(event){
//yourErrorFunction()
};
xhr.send();
}
function _saveBlob(response, fileName) {
if(navigator.msSaveBlob){
//OK for IE10+
navigator.msSaveBlob(response, fileName);
}
else{
_html5Saver(response, fileName);
}
}
function _html5Saver(blob , fileName) {
var a = document.createElement("a");
document.body.appendChild(a);
a.style = "display: none";
var url = window.URL.createObjectURL(blob);
a.href = url;
a.download = fileName;
a.click();
document.body.removeChild(a);
}
Что такое 401 ошибка:
Код ответа на статус ошибки HTTP 401 Unauthorized клиента указывает, что запрос не был применен, поскольку ему не хватает действительных учетных данных для целевого ресурса.
То есть файл который вы хотите получить, блокируется ресурсом т.к. он думает что вы неавторизованный пользователь, аноним.
Вам нужно передавать данные об авторизации в Header (Заголовке запроса). Методом XMLHttpRequest.setRequestHeader()
xhr.setRequestHeader('Authority', '_ТОКЕН_АВТОРИЗАЦИИ');
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости