получить заголовки SENT в XMLHttpRequest

Попытка получить заголовки запроса из объекта XHR, но безуспешно, есть ли скрытый метод или свойство этого объекта, который будет раскрывать заголовки, отправленные браузером?

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

Я использую webkit/chrome, другие браузеры меня не интересуют.

РЕДАКТИРОВАТЬ: я не собираюсь отслеживать запрос, я создаю веб-приложение, и мне нужно перечислить эти заголовки и отобразить их в приложении, пожалуйста, не говорите мне об инструментах fiddler, firebug и chrome, это не то, что Я ищу.


person Ahmad Nassri    schedule 27.09.2011    source источник
comment
Можете ли вы показать код, используемый вами?   -  person AmGates    schedule 27.09.2011
comment
Я мог бы, но это не имело бы большого значения, с любым запросом XHR можно получить доступ к заголовкам запроса так же, как вы можете получить доступ к заголовкам ответа с помощью xhr.getAllResponseHeaders()   -  person Ahmad Nassri    schedule 28.09.2011
comment
Казалось бы, нельзя.... по крайней мере, согласно спецификации W3C. Один из вариантов может заключаться в том, чтобы ваш сервер возвращал все заголовки запроса. Другой вариант - использовать инструменты Chrome для просмотра DOM, и, возможно, у Chrome есть читаемое свойство, которое вы можете вызвать через свой скрипт.   -  person trydyingtolive    schedule 28.09.2011
comment
если бы это было ограничено только моим сервером, то да, я бы на это полагался, но это не так. и Chrome, похоже, не имеет какого-либо читаемого свойства (которое я мог бы найти) с отправленными значениями заголовков.   -  person Ahmad Nassri    schedule 12.10.2011


Ответы (3)


В XMLHttpRequest API нет метода для получения заголовков отправленных запросов. Существуют методы для получения только заголовков ответа и установки заголовков запросов.

Вам придется либо заставить сервер повторять заголовки, либо использовать анализатор пакетов, такой как Wireshark.

person AmGates    schedule 27.09.2011

Попробуйте использовать веб-отладчик Fiddler.

http://www.fiddler2.com/fiddler2/

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

person Kenneth    schedule 27.09.2011
comment
Мне нужно получить доступ к заголовкам в самом javascript, я не хочу контролировать запросы извне. - person Ahmad Nassri; 28.09.2011

Предполагая, что вы используете jQuery и ищете что-либо прикрепленное, но, возможно, отправлены не ВСЕ заголовки, это может помочь. Не уверен, что он соответствует вашим точным потребностям (поскольку браузер имеет тенденцию добавлять свои собственные вещи), но если вам нужно сначала получить свои собственные заголовки, это работает:

$.ajaxSetup({
    beforeSend: function (jqXHR, settings) {
        if(!(settings.headers && settings.headers.token)) {
            //no token header was set, so set the request header
            jqXHR.setRequestHeader('token', newtoken);
        }
    }
})
person mix3d    schedule 13.02.2017