참조 : CORS에 대한 XHR 레벨 2에서
...뿐만 아니라 메모 :
이 정보는 의도적으로 거르는.
몇 달 후 편집 : 여기에 추가 답변으로 "이유"가 표시됩니다. 첫 번째 링크의 앵커에 몇 개의 문자가 누락되어 내가 언급했던 문서의 부분을보기가 어려워졌습니다.
이것은 보안상의 문제입니다. 민감한 HTTP 헤더에서 정보가 노출되지 않도록하려는 시도입니다. CORS에 대한 W3C 링크는 말한다 :
사용자 에이전트가의 값 중 하나의 필드 이름이 ASCII의 대소 문자를 구분하지 일치 간단한 응답 헤더 또는이다 그 이외의 모든 응답 헤더를 필터링한다 Access-Control-Expose-Headers 헤더 (있는 경우). CORS API 사양에 정의 된 API에 응답 헤더를 표시합니다.
그 구절은 Cache-Control, Content-Language, Content-Type, 만료, Last-Modified 및 Pragma를 나열하는 "간단한 응답 헤더"에 대한 링크를 포함합니다. 그래서 그것들은지나갑니다. "Access-Control-Expose-Headers headers"부분은 원격 서버가 다른 헤더를 노출 할 수있게합니다. 자세한 내용은 W3C 설명서를 참조하십시오.
하나의 출처가 있습니다. 브라우저에로드 한 웹 페이지로 일부 JavaScript를 실행한다고 가정 해 봅시다. 스크립트는 다른 출처로 요청합니다. 일반적으로 허용되지는 않습니다. 그런 식으로 불쾌한 일을하십시오. 따라서 스크립트를 실행하고 대신 HTTP 요청을 수행하는 브라우저는 게이트 키퍼 역할을합니다.
브라우저는 "다른 출처"서버의 응답을보고 CORS에서 "참여하지 못하는 것"인 경우 - 필요한 헤더가 누락되었거나 형식이 잘못되었습니다 - 그러면 우리는 신뢰 없음. 로컬에서 실행되는 스크립트가 이러한 방식으로 연락 될 것으로 예상되지 않는 서버에 접속하려고 시도하는 것으로 보이기 때문에 성실히 행동하고 있는지 확인할 수 없습니다.브라우저는 필터링없이 스크립트에 전체 응답을 전달함으로써 원격 서버의 중요한 정보를 "누설하지"않아야합니다. 기본적으로 이되며은 원본의 교차 요청을 허용합니다. 정보 유출 취약점이 발생할 수 있습니다.
이로 인해 디버깅이 어려워 질 수 있지만 "사용자"가이 컨텍스트의 개발자이기 때문에 보안이 중요한 우선 순위를 갖기 때문에 보안과 가용성 사이의 균형을 유지해야합니다.
이것이 가능한지 의심 스럽지만, 브라우저 기능이므로 자바 스크립트의 범위를 벗어납니다. 그 외에도 스니핑에 사용할 수있는 보안 구멍이 생길 수 있습니다. –
이것에 대해서도 궁금합니다. –