[Django] CORS 해결하기: django-cors-headers
2022. 8. 21. 03:12ㆍBack-end/Django
반응형
CORS(Cross-Origin Resource Sharing)
- 클라이언트가 서버에 요청할 때, 포트, 호스트, 스킴을 비교해서 출처가 같아야 합니다.
- CORS를 위반해도 서버는 정상적으로 응답을 합니다.
- 웹 브라우저가 판단해서 CORS 위반이라면 응답을 파기합니다.
Django에서 CORS를 해결하기
1. 터미널에서 다음을 실행하여 django-cors-headers를 설치합니다.
pip install django-cors-headers
2. settings.py에 다음을 추가합니다. 'corsheaders.middleware.CorsMiddleware', 'django.middleware.common.CommonMiddleware'는 MIDDLEWARE의 최상위에 위치해야 합니다.
INSTALLED_APPS = [
...
'corsheaders' # CORS 추가
...
]
MIDDLEWARE = [
'corsheaders.middleware.CorsMiddleware', # CORS 추가
'django.middleware.common.CommonMiddleware', # CORS 추가
...
]
# CORS 추가
# 모든 출처를 허용하기
CORS_ORIGIN_ALLOW_ALL = True
# 또는 일부 출처만 허용하기
CORS_ORIGIN_WHITELIST = ('http://127.0.0.1:8000', 'http://localhost:3000')
CORS_ALLOW_CREDENTIALS = True
CORS_ORIGIN_ALLOW_ALL로 모든 출처를 허용하거나, CORS_ORIGIN_WHITELIST로 일부 출처만 허용할 수 있습니다. 둘중에서 하나를 선택합니다.
반응형
'Back-end > Django' 카테고리의 다른 글
[Django] Django로 만든 앱을 배포하기: Pythonanywhere (0) | 2023.01.31 |
---|---|
[Django] Django-rest-framework로 GET, POST, PUT, DELETE 구현하기: APIView (0) | 2022.09.14 |
[Django] Django의 DB에 INSERT, SELECT, UPDATE, DELETE하기: QuerySet (0) | 2022.09.02 |
[Django] 서버의 DB를 RESTful API로 접근하기: Django-rest-framework (0) | 2022.08.25 |
[Django] Mac의 Safari에서 CORS 해결하기 (0) | 2022.08.21 |