Доступ к HTTP-заголовкам веб-страницы в JavaScript - PullRequest
371 голосов
/ 21 октября 2008

Как получить доступ к заголовкам HTTP-ответа страницы через JavaScript?

Относится к к этому вопросу , который был изменен для запроса доступа к двум конкретным заголовкам HTTP.

Связанный:
Как получить доступ к полям заголовка HTTP-запроса через JavaScript?

Ответы [ 16 ]

3 голосов
/ 10 ноября 2008

Используя mootools, вы можете использовать this.xhr.getAllResponseHeaders ()

2 голосов
/ 14 августа 2018

Чтобы получить заголовки как более удобный объект (улучшение Ответ Раджи ):

var req = new XMLHttpRequest();
req.open('GET', document.location, false);
req.send(null);
var headers = req.getAllResponseHeaders().toLowerCase();
headers = headers.split(/\n|\r|\r\n/g).reduce(function(a, b) {
    if (b.length) {
        var [ key, value ] = b.split(': ');
        a[key] = value;
    }
    return a;
}, {});
console.log(headers);
2 голосов
/ 13 декабря 2017

Это мой скрипт для получения всех заголовков ответа:

var url = "< URL >";

var req = new XMLHttpRequest();
req.open('HEAD', url, false);
req.send(null);
var headers = req.getAllResponseHeaders();

//Show alert with response headers.
alert(headers);

Наличие в результате заголовков ответа.

enter image description here

Это сравнительный тест с использованием Hurl.it:

.

enter image description here

2 голосов
/ 31 января 2011

Это старый вопрос. Не знаю, когда поддержка стала более широкой, но getAllResponseHeaders() и getResponseHeader() теперь кажутся достаточно стандартными: http://www.w3schools.com/xml/dom_http.asp

0 голосов
/ 05 декабря 2018

Я думаю, что вопрос пошёл не так, Если вы хотите взять заголовок запроса из JQuery / JavaScript, ответ прост: нет. Другие решения - создать страницу aspx или страницу jsp, тогда мы можем легко получить доступ к заголовку запроса. Возьмите все запросы на странице aspx и поместите их в сеанс / файлы cookie, после чего вы сможете получить доступ к файлам cookie на странице JavaScript.

0 голосов
/ 25 марта 2018

Как уже упоминалось, если вы контролируете серверную часть, то должна быть возможность отправлять заголовки начального запроса обратно клиенту в первоначальном ответе.

В Express, например, работают следующие:

app.get('/somepage', (req, res) => { res.render('somepage.hbs', {headers: req.headers}); }) Затем заголовки доступны в шаблоне, поэтому могут быть скрыты визуально, но включены в разметку и считаны клиентским JavaScript.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...