我有一个REST API,我将我的pdf文件放在其中,现在我希望我的angular应用程序通过我的Web浏览器在单击时下载它,但我遇到了HttpErrorResponse。
"JSON中的位置0处的意外令牌%"
"SyntaxError:在JSON中的位置0处出现意外令牌%\n 在JSON.parse(
这是我的端点
@GetMapping("/help/pdf2")
public ResponseEntity<InputStreamResource> getPdf2(){
Resource resource = new ClassPathResource("/pdf-sample.pdf");
long r = 0;
InputStream is=null;
try {
is = resource.getInputStream();
r = resource.contentLength();
} catch (IOException e) {
e.printStackTrace();
}
return ResponseEntity.ok().contentLength(r)
.contentType(MediaType.parseMediaType("application/pdf"))
.body(new InputStreamResource(is));
}
这是我的服务
getPdf() {
this.authKey = localStorage.getItem('jwt_token');
const httpOptions = {
headers: new HttpHeaders({
'Content-Type': 'application/pdf',
'Authorization' : this.authKey,
responseType : 'blob',
Accept : 'application/pdf',
observe : 'response'
})
};
return this.http
.get("http://localhost:9989/api/download/help/pdf2", httpOptions);
}
并调用
this.downloadService.getPdf()
.subscribe((resultBlob: Blob) => {
var downloadURL = URL.createObjectURL(resultBlob);
window.open(downloadURL);});
this.blob
到link.click()
的代码,你帮我省下了一个彻夜未眠的苦恼!谢谢!!!! - bemon