我有一个从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中显示所有标题???
答案 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
中的更多信息