source

도메인 간 리소스 공유 GET: '응답에서 안전하지 않은 헤더 "etag" 가져오기를 거부했습니다.

manycodes 2023. 3. 12. 10:59
반응형

도메인 간 리소스 공유 GET: '응답에서 안전하지 않은 헤더 "etag" 가져오기를 거부했습니다.

커스텀 헤더가 없는 단순한 GET 요구.응답은 예상대로 반환됩니다.본문의 데이터에 액세스할 수 있지만 헤더는 액세스할 수 없습니다.

"etag" 헤더에 액세스하려고 하면 브라우저에 예외가 발생합니다.

안전하지 않은 헤더 "etag" 가져오기를 거부했습니다.

Chrome, Safari 및 Firefox는 모두 동일하게 동작합니다.IE에서 테스트하지 않았습니다.

내가 뭘 놓쳤지?

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-display

또한 JSON-P라고 하는 다른 방법이 있습니다.JSON-P는 JSON 요청과 비슷하지만 교차 검색에 사용할 수 있습니다.http://en.wikipedia.org/wiki/JSONP

그러나 둘 다 올바르게 설정하지 않으면 사이트 소유자에게 매우 위험할 수 있습니다.그러니 사용할 때 조심하세요.

[PS] 이것이 도움이 될지 어떨지는 잘 모르겠습니다.http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html

언급URL : https://stackoverflow.com/questions/5822985/cross-domain-resource-sharing-get-refused-to-get-unsafe-header-etag-from-re

반응형