#javascript #asp.net-mvc #typescript
Вопрос:
Я получаю эту ошибку из-за того, что Chrome не смог загрузить PDF-документ. Я вижу содержимое данных в окне консоли, поэтому у меня есть возвращаемые данные, я просто не уверен, почему они не будут отображаться? Если я File.WriteAllBytes
на диск, он откроется нормально, так что, возможно, что-то с созданием new Blob
Не удалось загрузить PDF-документ.
код ts
printItems(versionKeys: string[]): JQueryPromise<any> {
console.log('printItems');
$.ajax({
type: "post",
contentType: "application/json",
data: JSON.stringify(versionKeys),
url: this.apiUrls.PrintTemplates,
success: function (data, status, xhr) {
console.log('printItems');
console.log(data);
let blob = new Blob([data.Content], { type: data.ContentType });
var url = URL.createObjectURL(blob);
console.log(url);
window.open(url);
console.log('success');
}
});
return;
}
Ошибка
Комментарии:
1. Вы имеете в виду использование
Uint8Array
?`
Ответ №1:
Я преобразовал строку base64 в байт
var binary_string = window.atob(data.Content)
var len = data.Content.length;
var bytes = new Uint8Array(len);
for (var i = 0; i < len; i ) {
bytes[i] = binary_string.charCodeAt(i);
}
let blob = new Blob([bytes.buffer], { type: data.ContentType })
var url = URL.createObjectURL(blob);
window.open(url);