교차 출처 리소스 공유(CORS)는 웹페이지에서 실행되는 XMLHttpRequest(XHR) 호출이 다른 출처의 리소스와 상호작용할 수 있도록 허용하는 표준 메커니즘입니다. CORS가 없으면 모든 브라우저에서 적용되는 동일 출처 정책으로 인해 교차 출처 요청이 차단됩니다. CORS에 대한 자세한 배경 정보는 Mozilla Developer Network(MDN) 참조 문서를 확인하세요.
CORS 표준에서는 웹 클라이언트가 CORS 실행 전 OPTIONS
를 발급하여 요청된 웹 서버에서 CORS를 지원하는지 확인해야 합니다. 웹 서버에서 CORS 요청을 지원하면 적절한 CORS 응답 헤더가 있는 OPTIONS
요청을 처리합니다.
백엔드 애플리케이션에서 CORS 처리
백엔드가 CORS를 지원하는 경우 ESP 또는 ESPv2가 CORS를 백엔드에 전달하도록 구성할 수 있습니다. 아래와 같이 API의 OpenAPI 사양에서 패스 스루를 사용 설정할 수 있습니다.
swagger: "2.0" host: "my-cool-api.endpoints.my-project-id.cloud.goog" x-google-endpoints: - name: "my-cool-api.endpoints.my-project-id.cloud.goog" allowCors: True
ESP 또는 ESPv2로 CORS 처리
백엔드가 CORS를 지원하지 않는 경우 CORS 시작 플래그를 지정하여 CORS 요청을 처리하도록 ESP 또는 ESPv2를 구성할 수 있습니다. 이 접근 방식에서 CORS 실행 전 요청은 백엔드 애플리케이션에 전달되지 않습니다. 또한 ESP 또는 ESPv2는 필요할 때 구성된 CORS 헤더를 백엔드 서비스의 응답에 추가합니다.
다음 CORS 시작 옵션은 ESP 및 ESPv2에서 사용할 수 있습니다.