django-cors-headers
라이브러리 github을 참고하였습니다.
https://github.com/adamchainz/django-cors-headers
(프론트엔드의) 클라이언트 앱 url과 (백엔드의) 서버 api 주소가 다를 경우 , 보안의 위험 때문에 브라우저는 다른 출처에 대한 HTTP 요청을 막으려고 할 것입니다.
이 때문에 프론트엔드에서 Django 앱에 대한 브라우저 내 응답(리소스)을 받을 수 있도록 CORS 헤더를 추가해야 합니다.
django-cors-headers
설치
poetry add django-cors-headers
settings 파일에 app과 middleware 추가
# velog/config/settings/prod.py
# ...
INSTALLED_APPS = ['corsheaders'] + INSTALLED_APPS
MIDDLEWARE = [
'corsheaders.middleware.CorsMiddleware', # 가능한 한 위에 배치
'django.middleware.common.CommonMiddleware',
] + MIDDLEWARE
setttings 파일에 상황에 따라 다음 세 가지 설정 중 하나 이상 설정 추가
CORS_ALLOWED_ORIGINS
: 교차 사이트 HTTP 요청을 할 권한이 있는 출처 목록CORS_ALLOWED_ORIGIN_REGEXES
: 교차 사이트 HTTP 요청을 수행할 수 있는 권한이 있는 오리진과 일치하는 정규식을 나타내는 문자열 목록CORS_ALLOW_ALL_ORIGINS
: 모든 출처 허용. 허용된 출처를 제한하는 다른 설정은 무시배포 후 브라우저에서 확인