이 문제의 또 다른 근본 원인은 HTTP / 1.1과 HTTP / 2의 차이 일 수 있습니다.
증상 : 모두가 아닌 일부 사용자가 소프트웨어를 사용할 때 CORS 오류가 발생한다고보고했습니다.
문제 :Access-Control-Allow-Origin 헤더가 누락 된 가끔 .
컨텍스트 :OPTIONS 요청 을 처리 하고 해당 CORS 헤더로 응답하는 데 전념하는 Lambda가 준비되어 있습니다 (예 : Access-Control-Allow-Originwhitelisted Origin.
솔루션 : API Gateway는 HTTP / 2 호출의 경우 모든 헤더를 소문자로 변환하는 것처럼 보이지만 HTTP / 1.1의 경우 대문자를 유지합니다. 이로 인해 액세스 event.headers.origin가 실패했습니다.
이 문제가 있는지 확인하십시오.
API가에 https://api.example.com있고 프런트 엔드가에 있다고 가정합니다 https://www.example.com. CURL을 사용하여 HTTP / 2를 사용하여 요청합니다.
curl -v -X OPTIONS -H 'Origin: https://www.example.com' https:
응답 출력에는 헤더가 포함되어야합니다.
< Access-Control-Allow-Origin: https://www.example.com
HTTP / 1.1 (또는 소문자 Origin헤더)을 사용하여 동일한 단계를 반복합니다 .
curl -v -X OPTIONS --http1.1 -H 'Origin: https://www.example.com' https:
경우 Access-Control-Allow-Origin헤더가없는, 당신은 읽을 때 대소 문자 구분을 확인 할 수 있습니다 Origin헤더를.
Bucket Policy? 정책에 방법이 있는지 확인하십시오