Bezdepbonusu7Программирование: статьи и ответы

Вопрос

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

Автор вопроса: Ahmad NassriОтветов: 3

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

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

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

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

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

javascriptxmlhttprequestgoogle-chromewebkit

Ответы

Ответ 1 · рейтинг 20 · AmGates

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

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

Ответ 2 · рейтинг 2 · Kenneth

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

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

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

Ответ 3 · рейтинг -1 · mix3d

Предполагая, что вы используете 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);
        }
    }
})

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы