我在我的Angular应用程序中尝试下载一个pdf文件。服务器(JBoss)提供了一个具有
Content-type : application/pdf和Content-Disposition
头部设置为attachment的文件。
我可以在fiddler响应中很好地看到这些头。但是在我的subscribe回调中,我看不到相同的头。相反,标头包含两个属性,即:
_headers和_normalizedHeaders
在进行GET调用时,我做如下操作:
`this._http.get(url, {responseType: 'arraybuffer'}).subscribe((file: Response)=>{
//Cant find headers in file here
});`
我还尝试将 responseType 设置为 RequestContentType.Blob
,但也没有任何区别。
对于我的下载实现,我有一段代码,一直以来都可以用 AngularJS 下载附件。我只是在这里遇到了读取 Content-Disposition
标头的困难。
我还尝试设置 { observe : response }
,期望以此获得详细的响应。然而,由于某些原因,在 GET options
中不允许设置该属性。
我看到了许多 SO 上的答案,并尝试了其中大部分,但仍无法获取标头。
P.S:直接在浏览器上访问 API 可以下载文件,这意味着我的 Java 代码没有问题,这让我想知道上面的代码出了什么问题。
请求建议。
services.AddCors(c => { c.AddPolicy("CorsPolicy", options => options.SetIsOriginAllowed(s => s.Contains("localhost")).AllowAnyMethod().AllowAnyHeader().WithExposedHeaders("Content-Disposition")); });
- bonnu18exposedHeaders(...)
。谢谢。 - sunitkatkar