我的问题非常类似于这个PDF Blob - 弹出窗口没有显示内容,但我使用的是Angular 2.问题的回答是将responseType设置为arrayBuffer,但它在Angular 2中不起作用,错误是reponseType没有存在于RequestOptionsArgs类型中.我也尝试通过BrowserXhr扩展它,但仍然不起作用(https://github.com/angular/http/issues/83).
我的代码是:
createPDF(customerServiceId: string) {
console.log("Sending GET on " + this.getPDFUrl + "/" + customerServiceId);
this._http.get(this.getPDFUrl + '/' + customerServiceId).subscribe(
(data) => {
this.handleResponse(data);
});
}
Run Code Online (Sandbox Code Playgroud)
而handleResponse方法:
handleResponse(data: any) {
console.log("[Receipt service] GET PDF byte array " + JSON.stringify(data));
var file = new Blob([data._body], { type: 'application/pdf' });
var fileURL = URL.createObjectURL(file);
window.open(fileURL);
}
Run Code Online (Sandbox Code Playgroud)
我也尝试从FileSaver.js中保存方法,但是同样的问题,pdf打开,但内容不显示.谢谢
我是 angular 的新手,我一直在努力弄清楚如何下载一个文件,在我的例子中是一个 pdf 文件。这是我得到的错误:
Http failure during parsing for https://url...
Run Code Online (Sandbox Code Playgroud)
在浏览器的调试控制台中也是一个错误:
SyntaxError: Unexpected token % in JSON at position 0 at JSON.parse
Run Code Online (Sandbox Code Playgroud)
其实我正在下载一个pdf文件。这是我的 http 调用的样子:
protected get<T>(url: string, params: any, defaultResult: T): Observable<T> {
return this.httpClient.get<T>(url, {
headers: myHeader,
params: params
})
.pipe(catchError(this.handleError(defaultResult))
);
Run Code Online (Sandbox Code Playgroud)
} 如何