IT/Django

[ CORS ] Cross Origin 리소스 공유 에러 해결

앤소온 2021. 1. 4. 15:58

장고와 s3연동을 했다. 

 

어드민 페이지를 보는데 개발자도구에서 

http:// ~: ~ has been blocked by CORS policy: No 'Access-Control-Aloow-Origin' header is present on the requested resource. 라는 에러가 나왔다. 

 

CORS정책 때문이라는 것같다. 

 

1. S3 권한탭에서 CORS 편집을 누른다. 

2. JSON 형식으로 정책을 입력한다. 

 

과거 블로그들을 검색해도 안되는데 형식이 xml 이라 그렇다. 

 

찾다보니 JSON으로 하신 고마운 분이 계셨다.

 

www.enteroa.com/2020/11/05/s3-%EB%B2%84%ED%82%B7-cors-%EC%84%A4%EC%A0%95-json/

 

S3 버킷 CORS 설정 (json)

S3 의 CORS 설정이 기존 XML 방식에서 Json 방식으로 변경이 되었다 ‘ㅅ’a 웹콘솔에서 s3 버킷을 선택 하고 관리 탭의 하단에 있다. 사실 문법만 틀리겠지만 미리 정리를 해본다.   다음은 가장 일

www.enteroa.com

이분 것을 참고했다. 

 

[
    {
        "AllowedOrigins": [ "http://localhost:*" ],
        "AllowedMethods": [ "GET", "PUT", "POST", "HEAD" ],
        "AllowedHeaders": [ "*" ],
        "ExposeHeaders": [ "x-amz-server-side-encryption", "x-amz-request-id", "x-amz-id-2" ],
        "MaxAgeSeconds": 3000
    }
]

이렇게 했는데 안됐다. 이우는 AllowedOrigins에 localhost: 이부분이 원이이었다. 

http://127.0 ~ : port num 이렇게 하니까 에러가 없어졌다. 

 

 

* CORS 란? 

developer.mozilla.org/ko/docs/Web/HTTP/CORS

 

교차 출처 리소스 공유 (CORS) - HTTP | MDN

이에 대한 응답으로 서버는 Access-Control-Allow-Origin 헤더를 다시 보냅니다. 교차 출처 리소스 공유(Cross-Origin Resource Sharing, CORS)는 추가 HTTP 헤더를 사용하여, 한 출처에서 실행 중인 웹 애플리케이

developer.mozilla.org