Как я могу получить заголовок ответа через междоменный ajax? - PullRequest
6 голосов
/ 24 мая 2011

Я пытаюсь читать документацию, и должен признаться, что это нелегкое чтение. У меня нет проблем (после добавления заголовка Access-Control-Allow-Origin), чтобы прочитать responseText, но не удается получить заголовок ответа в любом месте, кроме Firefox.

Итак, мой вопрос: как правильно получить заголовок ответа, используя междоменный ajax?

Я пытался использовать ( Access-Control-Expose-Headers ), но, опять же, не смог прочитать заголовок.

Ответы [ 2 ]

16 голосов
/ 26 мая 2011

Таким образом, он должен работать так, чтобы вы указали заголовки, к которым у клиента должен быть доступ, в заголовке Access-Control-Expose-Headers.Например, если ваш сервер устанавливает заголовок ответа Foo и вы хотите, чтобы клиент мог его прочитать, ваш сервер также должен отправить следующий заголовок:

Access-Control-Expose-Headers: Foo

На стороне клиента вы можете прочитатьвсе заголовки ответа путем вызова xhr.getAllResponseHeaders ().Это возвращает заголовки ответа в виде строки, которую затем можно проанализировать в объекте, используя следующий код: https://gist.github.com/706839

Это объяснение того, как вещи должны работать.Однако обратите внимание, что в старых браузерах есть ошибка, когда заголовки ответа не могут быть прочитаны на клиенте.Подробнее см. Здесь: Метод HEAD xmlhttprequest HEAD

1 голос
/ 22 марта 2012

У меня была такая же проблема, и я нашел ответ в списке рассылки Chromium, что это исправлено в webkit и будет реализовано в crhomium ~ 19.

Я постараюсь найти тему и обновить свой ответ.

...