Как получить все заголовки в Javascript? - PullRequest
1 голос
/ 03 апреля 2020

Быстрый и грязный эксперимент:

function fetchHead(url) {
    var request = new XMLHttpRequest();
    request.onreadystatechange = function () {
        if (request.readyState === XMLHttpRequest.DONE) {
            console.log(request.getAllResponseHeaders())
        }
    }

    request.open('HEAD', url, true)
    request.send(null)
}

Показывает только три заголовка: ["cache-control", "content-type", "expires"]. Но в реальном ответе есть дюжина заголовков, как видно из Инспектора сети на Панели инструментов разработки.

Есть ли какой-либо (другой) способ получить все заголовки в Javascript? Возможно ли (вообще) прочитать пользовательский заголовок ответа из Javascript?

PS - Ответ имеет Access-Control-Allow-Origin: *. Тем не менее, браузеры, похоже, удаляют много заголовков.

Ответы [ 2 ]

2 голосов
/ 03 апреля 2020

В целях безопасности браузеры ограничивают доступ к большинству вызовов HTTP-заголовков через XMLHttpRequest. Лучшим примером для этого, вероятно, является стандарт Fetch .

. Этот ограниченный список может быть расширен сервером, возвращающим заголовок Access-Control-Expose-Headers, сообщающий браузеру, какие заголовки безопасны для доступа JavaScript к.

0 голосов
/ 03 апреля 2020

Я не могу воспроизвести это. MDN говорит, что все заголовки будут возвращены в нижнем регистре.

...