Подтвердить что ты не робот

Совместное использование ресурсов домена GET: "отказался получить небезопасный заголовок" etag "из ответа"

Простой запрос GET без пользовательских заголовков. Ответ возвращается, как ожидалось. Данные в теле доступны, но не заголовки.

Когда я пытаюсь получить доступ к заголовку "etag", браузеры вызывают исключение:

Отказано, чтобы получить небезопасный заголовок "etag"

Chrome, Safari и Firefox ведут себя одинаково. Я не тестировал его в IE.

Что мне здесь не хватает?

4b9b3361

Ответ 1

При использовании CORS отображаются только простые заголовки ответов. Простые заголовки ответов определены здесь. ETag не является простым заголовком ответа. Если вы хотите открыть непростые заголовки, вам нужно установить заголовок Access-Control-Expose-Headers, например:

Access-Control-Expose-Headers: ETag

Однако обратите внимание, что я заметил ошибки в браузерах Chrome, Safari и Firefox, которые предотвращают правильное отображение непростых заголовков. Это может быть исправлено к настоящему времени, я не уверен.

Вам не нужно выполнять предпродажный запрос, поскольку предполетная проверка требуется только для методов не-GET/POST-http или непростых заголовков запросов (и вы спрашиваете об заголовках ответов).

Ответ 2

Вы когда-нибудь пробовали AJAX 2.0 (совместное использование доменов) - это методология, довольно недавно выработанная W3C: http://www.w3.org/TR/XMLHttpRequest2/#ref-cors

Также есть и другой способ сделать это, который называется JSON-P, как JSON-запрос, но вы можете использовать его для кросс-доменов: http://en.wikipedia.org/wiki/JSONP

Оба могут быть очень опасны для владельцев сайтов, если они не настроены правильно. Поэтому будьте осторожны при использовании.

[PS] Не уверен, что это поможет: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html