从aurelia fetch-client获取响应头

时间:2016-05-13 13:03:19

标签: aurelia aurelia-fetch-client

我有一个从web api

返回文件的方法
 public static HttpResponseMessage FileAsFileAttachment(byte[] bytes, string filename)
    {
        var result = new HttpResponseMessage(HttpStatusCode.OK) { Content = new ByteArrayContent(bytes) };

        result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");

        result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment") { FileName = filename};

        return result;
    }

如何从响应中读取Content-Disposition标头?

 this.httpClient.fetch(`/company/get-asic-fee-autocomplete`).then(data=> { console.log(data.headers.get("Content-Disposition "))});

此标题始终为null

如何获取文件名并在aurelia fetch-client中显示所有标题???

2 个答案:

答案 0 :(得分:0)

总结一下,下一个遇到问题的人。
如上所述,如果您启用了CORS,则

默认情况下,即使我在调试时可以在响应标头中看到内容,也仅公开了7个CORS安全列出的响应标头。看看https://developer.mozilla.org/de/docs/Web/HTTP/Headers/Access-Control-Expose-Headers

解决方案:在服务器端添加此代码

Response.Headers.Add("Access-Control-Expose-Headers", "Content-Disposition");

答案 1 :(得分:-1)

给定CORS公开的头名列表列表的CORS-safelisted响应头名称是一个头名称

Cache-Control Content-Language Content-Type Expires Last-Modified Pragma

aurelia fetch-client

中禁止任何其他标头

列表中的任何值都不是禁止的响应标头名称。

文档here

中的更多信息