Spring引导Angular2文件下载不工作

Spring引导Angular2文件下载不工作,spring,rest,angular,spring-boot,multipartform-data,Spring,Rest,Angular,Spring Boot,Multipartform Data,我在用angular2从spring boot加载文件时遇到问题 这是我的spring boot代码,它来自:。我可以直接用邮递员下载文件,但不能用angular2 @RequestMapping(value="/file/{id}", method=RequestMethod.GET) public ResponseEntity<?> getFile(@PathVariable("id") long id) { UploadFile uFile = uploadFileSe

我在用angular2从spring boot加载文件时遇到问题

这是我的spring boot代码,它来自:。我可以直接用邮递员下载文件,但不能用angular2

@RequestMapping(value="/file/{id}", method=RequestMethod.GET)
public ResponseEntity<?> getFile(@PathVariable("id") long id) {
    UploadFile uFile = uploadFileService.getUploadFileById(id);


    byte[] contents = uFile.getContent();

    HttpHeaders headers = new HttpHeaders();
    headers.setContentType(MediaType.parseMediaType("application/pdf"));
    headers.setContentDispositionFormData(uFile.getName(), uFile.getName());
    headers.setCacheControl("must-revalidate, post-check=0, pre-check=0");

    return new ResponseEntity<byte[]>(contents, headers, HttpStatus.OK);
}
下载按钮

downloadFile(uFile: UploadFile){
    this.uploadFileService.downloadFile(uFile.id)
        .subscribe(
                data => window.open(URL.createObjectURL(data)),
            );
    return false;
}
当我点击下载按钮时,chrome会打开新标签,并立即关闭它,不显示任何文件。 下面是一些来自邮递员的回复标题

Access-Control-Allow-Headers →Content-Type, x-requested-with, Authorization, responseType
Access-Control-Allow-Methods →POST, PUT, GET, PATCH, OPTIONS, DELETE
Access-Control-Allow-Origin →http://localhost:4200
Access-Control-Max-Age →3600
Cache-Control →must-revalidate, post-check=0, pre-check=0
Content-Disposition →form-data; name="reference.pdf"; filename="reference.pdf"
Content-Length →31576
Content-Type →application/pdf
Date →Mon, 27 Mar 2017 08:39:24 GMT
X-Content-Type-Options →nosniff
X-Frame-Options →DENY
X-XSS-Protection →1; mode=block

Spring引导解决方案基于和Angular2。有问题的代码完全正常工作使用pdf文件自动关闭选项卡的原因是chrome中的Adblock插件。

Spring boot解决方案基于和Angular2。有问题的代码完全正常工作使用pdf文件自动关闭选项卡的原因是chrome中的Adblock插件。

查看这两个答案,我写道:是的,这些代码正是我在解决方案中使用的代码,但问题仍然存在。当我尝试在IE中下载文件时,它会打开一个新的标签,上面有如下链接:blob:8ASDA017-7456B-4614-AD56-47456456021它在IE中不工作,据我所知,只在Chrome和Mozilla中工作。它在Chrome中100%工作,请尝试更新到最新版本。是的,我找到了解决问题的方法。Adblock插件阻止了它……看看这两个答案,我写了这篇文章:是的,这些代码正是我在解决方案中使用的,但问题仍然存在。当我尝试在IE中下载文件时,它会打开一个新的标签,上面有如下链接:blob:8ASDA017-7456B-4614-AD56-47456456021它在IE中不工作,据我所知,只在Chrome和Mozilla中工作。它在Chrome中100%工作,请尝试更新到最新版本。是的,我找到了解决问题的方法。Adblock插件正在阻止它。。。。。
Access-Control-Allow-Headers →Content-Type, x-requested-with, Authorization, responseType
Access-Control-Allow-Methods →POST, PUT, GET, PATCH, OPTIONS, DELETE
Access-Control-Allow-Origin →http://localhost:4200
Access-Control-Max-Age →3600
Cache-Control →must-revalidate, post-check=0, pre-check=0
Content-Disposition →form-data; name="reference.pdf"; filename="reference.pdf"
Content-Length →31576
Content-Type →application/pdf
Date →Mon, 27 Mar 2017 08:39:24 GMT
X-Content-Type-Options →nosniff
X-Frame-Options →DENY
X-XSS-Protection →1; mode=block