【问题标题】:Get response headers from aurelia fetch-client从 aurelia fetch-client 获取响应标头
【发布时间】:2016-05-13 13:03:18
【问题描述】:

我有一个从 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 "))});

此标头始终为空

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

【问题讨论】:

  • 在我的情况下 console.log(data.headers) 看起来像 gyazo.com/1d32a4e9226bac151102649d607716fa
  • 我看到你的代码data.headers.get("Content-Disposition ")中有一个空格。试试data.headers.get("content-disposition")
  • 没关系。此值始终为空。也许 aurelia fetch-client 不支持某些标头。
  • 如果您尝试获取content-type 而不是content-disposition,是否可行?
  • 是的。内容类型工作正常。

标签: aurelia aurelia-fetch-client


【解决方案1】:

接下来遇到问题的人只要总结一下即可。
如上所述,如果您启用了 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");

【讨论】:

    【解决方案2】:

    一个 CORS 安全列表的响应头名称,给定一个 CORS 公开的头名称列表列表,是一个头名称,它是一个

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

    aurelia fetch-client 中禁止使用任何其他标头

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

    更多信息在文档here

    【讨论】:

    • 您能详细说明一下吗?谢谢
    猜你喜欢
    • 2017-11-27
    • 1970-01-01
    • 2017-12-17
    • 2016-12-21
    • 2016-03-12
    • 2018-03-11
    • 2017-01-04
    • 2017-09-06
    • 1970-01-01
    相关资源
    最近更新 更多