CloudFront의 "요청한 리소스에 'Access-Control-Allow-Origin' 헤더가 없음" 오류를 해결하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2020년 6월 29일

Amazon CloudFront 배포의 오리진 헤더를 전달하려고 했지만 "요청한 리소스에 'Access-Control-Allow-Origin' 헤더가 없음"이라는 오류가 발생했습니다. 이 오류를 해결하려면 어떻게 해야 합니까? 

간략한 설명

"요청한 리소스에 'Access-Control-Allow-Origin' 헤더가 없음" 오류를 방지하려면 다음을 확인하십시오.

  • 오리진의 CORS(교차 오리진 리소스 공유) 정책이 오리진에서 "Access-Control-Allow-Origin" 헤더를 반환하는 것을 허용합니다.
  • CloudFront 배포가 적절한 헤더를 전달합니다.
  • CloudFront 배포의 캐시 동작이 HTTP 요청에 대한 OPTIONS 메서드를 허용합니다.

해결 방법

오리진의 CORS(교차 오리진 리소스 공유) 정책을 통해 오리진에서 "Access-Control-Allow-Origin" 헤더 반환

다음과 유사한 curl 명령을 실행하여 오리진에서 "Access-Control-Allow-Origin" 헤더를 반환하는지 확인합니다.

curl -H "origin: example.com" -v "https://www.anything.net/video/call/System.generateId.dwr"

CORS 정책을 통해 오리진에서 헤더를 반환하는 경우 명령은 다음과 유사한 메시지를 반환합니다. 

HTTP/1.1 200 OK
Server: nginx/1.10.2
Date: Mon, 01 May 2018 03:06:41 GMT
Content-Type: text/html
Content-Length: 3770
Last-Modified: Thu, 16 Mar 2017 01:50:52 GMT
Connection: keep-alive
ETag: "58c9ef7c-eba"
Access-Control-Allow-Origin:
    example.com
Accept-Ranges: bytes

NGINX의 오리진에 대한 CORS 정책을 업데이트하려면 CORS on Nginx에서 관련 지침을 참조하십시오. Amazon Simple Storage Service(Amazon S3) 버킷인 오리진에 대한 정책을 업데이트하려면 CORS(교차 오리진 리소스 공유) 활성화에서 관련 지침을 참조하십시오.

CloudFront 배포가 적절한 헤더를 전달함

오리진에서 CORS를 설정한 후에 오리진에 필요한 헤더를 전달하도록 CloudFront 배포를 구성합니다. 오리진이 S3 버킷인 경우 일반적으로 다음 헤더를 Amazon S3에 전달하도록 배포를 구성해야 합니다.

  • Access-Control-Request-Headers
  • Access-Control-Request-Method
  • 오리진

CloudFront 배포에서 헤더를 전달하려면 다음 단계를 수행합니다.

  1. CloudFront 콘솔에서 배포를 엽니다.
  2. [Behaviors] 탭을 선택합니다.
  3. [Create Behavior]를 선택하거나 기존 동작을 선택하고 [Edit]를 선택합니다.
  4. [Cache Based on Selected Request Headers]에서 [Whitelist]를 선택합니다.
  5. [Whitelist Headers] 아래 왼쪽의 메뉴에서 헤더를 선택하고 [Add]를 선택합니다.
  6. [예, 편집]을 선택합니다.

참고: 또한 클라이언트 요청의 일부로 헤더를 CloudFront에 전달해야 합니다. 그러면 CloudFront가 오리진에 헤더를 전달합니다.

CloudFront 배포의 캐시 동작이 HTTP 요청에 대한 OPTIONS 메서드를 허용함

CORS 정책을 업데이트하고 적절한 헤더를 전달한 후에도 오류가 발생하면 배포의 캐시 동작에서 OPTIONS HTTP 메서드를 허용합니다. 기본적으로 CloudFront는 GET 및 HEAD 메서드만 허용하지만 일부 웹 브라우저에서는 OPTIONS 메서드에 대한 요청을 실행할 수 있습니다.

CloudFront 배포에서 OPTIONS 메서드를 활성화하려면 다음 단계를 수행합니다.

  1. CloudFront 콘솔에서 배포를 엽니다.
  2. [Behaviors] 탭을 선택합니다.
  3. [Create Behavior]를 선택하거나 기존 동작을 선택하고 [Edit]를 선택합니다.
  4. [Allowed HTTP Methods]에서 [GET, HEAD, OPTIONS]를 선택합니다.
  5. [예, 편집]을 선택합니다.

참고: CloudFront는 일반적으로 5분 이내에 배포에 변경 사항을 배포합니다.


이 문서가 도움이 되었습니까?


결제 또는 기술 지원이 필요합니까?