Получить заголовки ответа от aurelia fetch-client
У меня есть способ вернуть файл из веб-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???
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");
Имя заголовка ответа, сохраненного в CORS, с учетом списка списка имен заголовков, представленного CORS, является именем заголовка, которое является одним из
Cache-Control
Content-Language
Content-Type
Expires
Last-Modified
Pragma
любые другие заголовки запрещены в aurelia fetch-client
Любое значение в списке, которое не является запрещенным именем заголовка ответа.
больше информации в документации здесь