Есть ли способ получить все заголовки запроса в вызове jQuery $ .ajax? - PullRequest
15 голосов
/ 01 февраля 2012

Я создаю инструмент отладки для запросов AJAX и хотел бы показать заголовки запроса / ответа (так же, как Firebug).Я могу получить заголовки ответа, используя jqXHR.getAllResponseHeaders , но есть ли эквивалент для заголовков запроса ?


Если нет, я знаю, что могу нескольковосстанови это сам:

GET /blah  // this part is easy
Host: servername.com  // pretty easy
Accept:  ???
Referer: ??? // just use current page url?
User-Agent:  // easy from navigator.userAgent
X-Requested-With: XMLHttpRequest   // hardcoded, $.ajax always does this?
Accept-Charset: ???
Accept-Encoding: ??? 
Accept-Language: ???
Connection: ???  

Я забочусь в основном о Accept.Кажется, что браузер или что-то меняет это, так как я устанавливаю $.ajax({dataType:'json'}) и в firebug вижу Accept application/json, text/javascript, */*; q=0.01.Я хотел бы иметь возможность захватить фактический отправляемый заголовок.

Для Referer безопасно ли просто использовать window.url, или это может быть что-то еще?

Понятия не имею, как получить значения Accept-* или Connection.

Ответы [ 3 ]

8 голосов
/ 11 октября 2014

Краткий ответ - как ни удивительно, нет.

API *1003* XMLHttpRequest * не имеет метода для получения заголовков запроса, который должен быть отправлен.См. Также этот вопрос .

Новый объект jqHXR, расширенный набор встроенного в браузер XMLHttpRequest , к сожалению, тоже не реализует его.

.ajaxComplete() callback действительно получает параметр settings, который будет содержать ключ headers, если вы установили его обычным образом, но не если вы использовали .beforeSend() для звонка setRequestHeader().

3 голосов
/ 04 июня 2014

Вы можете использовать «this» в качестве ссылки для текущего ajax-запроса, а затем получить свойство «accept» следующим образом:

0 голосов
/ 17 октября 2013

Вы можете использовать объект jqXHR в функции успеха для доступа к заголовкам.

$.ajax({
...
success: function(data, textStatus, jqXHR ){
console.log(jqXHR);
...
}
})

от http://api.jquery.com/jQuery.ajax/

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