Я пытаюсь получить PDF-файл с сервера, который будет заключен в JSON.
Если я отправляю только массив байтов PDF-файла на внешний интерфейс, я могу правильно его прочитать, установив responseType
в arraybuffer
, тогда я могу загрузить PDF-файл:
var blob = new Blob([data], { type: application/pdf});
if ($window.navigator && $window.navigator.msSaveOrOpenBlob) {
$window.navigator.msSaveOrOpenBlob(blob);
} else {
var a = document.createElement("a");
document.body.appendChild(a);
var fileURL = URL.createObjectURL(blob);
a.href = fileURL;
a.download = fileName;
a.click();
}
}
Однако, когда сервер пытается отправить JSON с массивом байтов внутри, если я установлю responseType
на JSON
, я не смогу преобразовать большой двоичный объект. Но если я установлю responseType
в arrayBuffer
, я получу массив arrayBuffer, как мне преобразовать его в JSON, сохранив при этом возможность извлечения PDF-файла после этого:
JSON, который я получаю, имеет вид:
{
result: true,
value: <the pdf byte array>,
errorMessage: null
}