无法从角度2获得所有响应标题与cors

问题描述:

我有一个Angular 2(2.1.2)客户端,ASP.NET Core作为启用了CORS的后端。正常的API(GET,POST,DELETE,...)工作正常,我的问题是当我尝试从响应中检索标题时;特别是Content-Disposition。这是当我尝试使用Ajax获取文件内容时的屏幕截图。无法从角度2获得所有响应标题与cors

OPTIONS request

GET request

正如你可以看到有一个叫Content-Disposition在GET响应头报头,但是当我尝试从角http服务检索它丢失了。

快速提示,我只在开发中使用CORS。

+0

你的服务器可能缺少'访问控制 - 允许 - 标题:内容处置https://www.w3.org/TR/2014/REC-cors-20140116/#access-control-allow-headers-response-header –

+0

我对ASP.NET Core仍然很陌生,但我有CORS这样启用'options.AddPolicy(“AllowAll”,builder => builder.AllowAnyMethod()。AllowAnyHeader()。AllowAnyOrigin())',我不知道我是否缺少一些东西。 – Ayman

+0

不包含'AllowAnyHeaders'。我不知道ASP.NET,我只知道Angular2。 –

您需要配置的服务器,这样就增加了响应头

access-control-expose-headers: content-disposition 

否则浏览器不会使头可用于JavaScript。

+0

任何地方我可以阅读更多关于此? –

+1

搜索CORS –

+0

谢谢我发现了所有CORS头文件的很好的描述 - https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS#Access-Control-Expose-Headers –

为了更精确,在ASP.NET核心,你可以在你Startup类配置像这样,在Configure方法:

app.UseCors(x => 
{ 
    x.WithExposedHeaders("Content-Disposition"); 
    // .. omitted 
});