Angular 2 baixando um arquivo: resultado corrompido
Estou tentando fazer o download de um arquivo usando Angular 2 / TypeScript e Web API. O problema que estou tendo é que, ao baixar o arquivo de texto, ele é um arquivo, mas ao tentar baixar um arquivo PDF, por exemplo, ele está corrompido. O conteúdo do arquivo baixado é absurdo.
O TypeScript que estou usando é o seguinte:
downloadFile(fileId: string): Observable<File> {
this.applicationsUrl = `${APIConfig.BaseUrl}/documents/download/${fileId}/`;
let headers = new Headers({ 'Content-Type': 'application/json', 'MyApp-Application' : 'AppName' });
let options = new RequestOptions({ headers: headers });
return this.http.post(this.applicationsUrl, '', options)
.map(this.extractContent)
.catch(this.handleError);
}
private extractContent(res: any) {
let blob: Blob = new Blob([res._body], { type: 'application/pdf'});
window['saveAs'](blob, 'test.pdf');
}
A janela ['saveAs'] é apenas uma solução alternativa para acessar as funções JavaScript FileSaver.js.
Além disso, configurei res: Response to res: any para que eu possa acessar a propriedade _body privada em JavaScript sem uma falha de compilação no TypeScript.
Qualquer ajuda seria muito apreciada.