Обмен ресурсами кросс -домена Get: «Отказался получить небезопасную заголовок« etag »из ответа

StackOverflow https://stackoverflow.com/questions/5822985

Вопрос

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

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

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

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

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

Это было полезно?

Решение

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

Access-Control-Expose-Headers: ETag

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

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

Другие советы

Вы когда -нибудь пробовали 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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top