Aktualnie pracuję nad zadaniem pobrania pliku (PDF/excel/text) przy użyciu bezpiecznego interfejsu API w moim systemie w wersji kątowej 2 (beta).Konwertuj ciąg/Tekst na tablicę bajtów w skrypcie typu
Użyłem interfejsu API post z nagłówkiem uwierzytelniania i próbuję utworzyć obiekt blob przy użyciu odebranych bajtów danych.
Próbowałem przy użyciu następujący kod
return this.http.get(url, { headers: this.headers}).map(response => response.blob())
Ale mam błąd, że metoda kropelka nie jest realizowany w kątowym 2 HTTP.
więc próbuję następujący kod, gdzie muszę konwertować ciąg do tablicy bajtowej.
return this.http.get(Configuration.API_URL + url, { headers: this.headers }).map(
response => {
var bytes = [];
var utf8 = encodeURIComponent(response.text());
for (var i = 0; i < utf8.length; i++) {
bytes.push(utf8.charCodeAt(i));
}
var data = new Blob([bytes], { type: 'application/pdf' });
var fileURL = URL.createObjectURL(data);
window.open(fileURL);
}
);
tutaj napotykam na pewien problem z tablicą bajtów. Tablica bajtów nie jest taka sama, jak ta wysłana przez interfejs API.
Potrzebujesz pomocy w konwersji łańcucha na tablicę bajtów lub używając blob w kanciastej 2 żądanie HTTP get.
Tak, blob() już wkrótce. Tymczasem sprawdź to: http://stackoverflow.com/questions/35368633/angular-2-download-pdf-from-api-andwidget-it-in-view – mico
Thankyou mico Ta odpowiedź xhr pomógł mi –
Jaka jest różnica między tablicami bajtów? wszystkie elementy lub tylko nagłówek/stopka? –