
CORS로 방지되는 오류: "Access-Control-Allow-Origin에 의해 원본이 허용되지 않습니다."
소개:
원본 간 리소스 공유 중에 "원본은 Access-Control-Allow-Origin에 의해 허용되지 않습니다" 오류가 발생합니다. (CORS) 클라이언트측 스크립트가 실행 중인 원본이 아닌 다른 출처의 리소스에 액세스하려고 할 때.
원인:
이 오류에는 여러 가지 잠재적인 원인이 있습니다.
- 동일 출처 정책: JavaScript는 서버의 명시적인 허가 없이 도메인 외부의 리소스에 액세스하는 것이 제한됩니다. 이 정책은 악성 스크립트가 사용자 데이터를 훔치거나 사이트 보안을 손상시키는 것을 방지합니다.
- 잘못 구성된 서버 응답: 서버는 승인에 대한 응답에 적절한 Access-Control-Allow-Origin 헤더를 포함해야 합니다. 특정 출처에 대한 액세스. 이 헤더가 없거나 잘못된 경우 브라우저는 요청을 차단합니다.
문제 해결:
- 서버 응답 확인 : 서버의 응답 헤더를 검사하여 Access-Control-Allow-Origin 헤더가 포함되어 있고 원하는 대로 설정되어 있는지 확인합니다. Origin.
- 서버에서 CORS 활성화: 서버에 CORS가 활성화되어 있지 않으면 이를 지원하도록 구성해야 합니다. 여기에는 웹 서버의 구성 파일에 CORS 규칙을 설정하는 작업이 포함될 수 있습니다.
- JSONP 사용: JSONP(JSON with Padding)는 데이터 반환을 허용하는 동일 출처 정책에 대한 해결 방법입니다. XML 문서가 아닌 함수 호출로. 그러나 서버는 JSONP를 지원하도록 구성되어야 합니다.
- 프록시 사용: PHP 스크립트 또는 ASP 서비스와 같은 서버측 프록시를 사용하여 서버에서 리소스를 검색할 수 있습니다. 다른 출처를 찾아서 클라이언트측 스크립트에 전달합니다.