Получить заголовки ответа от 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-ControlContent-LanguageContent-TypeExpiresLast-ModifiedPragma

любые другие заголовки запрещены в aurelia fetch-client

Любое значение в списке, которое не является запрещенным именем заголовка ответа.

больше информации в документации здесь

Другие вопросы по тегам