jqXHR.getAllResponseHeaders () не вернет все заголовки - PullRequest
18 голосов
/ 11 апреля 2011

После jQuery.ajax() вызова jqXHR.getAllResponseHeaders() не вернет все заголовки.Сервер ответил следующими заголовками:

Connection: keep-alive
Content-Length: 64
Content-Type: application/json
X-My-CustomHeader: whatever

getAllResponseHeaders() только возвращается:

Content-Type: application/json

Что я делаю не так?

Пример

var request = {
  'url': 'http://api.someExternalDomain.com/resource/',
  'type': someMethod,
  'success': function(data, textStatus, jqXHR) {
    console.log(jqXHR.getAllResponseHeaders());
  }
};

$.ajax(request);

Ответы [ 2 ]

8 голосов
/ 22 июня 2017

svenyonson назвал это в комментариях, но для меня это был ответ, так что я поднимаю его. Если вы делаете CORS , сервер должен четко указать, какие заголовки разрешено читать клиенту.Если вы хотите прочитать X-My-CustomHeader в javascript, тогда этот заголовок должен быть в ответе сервера:

Access-Control-Expose-Headers: X-My-CustomHeader

Подробнее здесь .

6 голосов
/ 08 марта 2012

с официального сайта jquery:

В настоящее время из-за ошибки в Firefox, где .getAllResponseHeaders () возвращает пустую строку, хотя .getResponseHeader ('Content-Type') возвращает непустую строку, автоматически декодируя ответы JSON CORS в Firefox с jQuery не поддерживается.

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

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