일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Baekjoon
- Django
- AWS
- 알고리즘 문제
- es6
- Git
- 백준
- 장고
- Algorithm
- MAC
- 알고리즘 연습
- java
- PYTHON
- javascript
- form
- API
- django ORM
- c++
- django widget
- 파이썬 알고리즘
- web
- react
- js
- 파이썬
- 알고리즘
- 알고리즘 풀이
- CSS
- HTML
- django rest framework
- DRF
Archives
- Today
- Total
수학과의 좌충우돌 프로그래밍
[Django] CORS, Cross-Origin Resource Sharing 본문
CORS 란?
제목에서 알 수 있듯이 CORS
는 Cross-Origin Resource Sharing
의 줄임말입니다.
Cross-Origin Resource Sharing
는 한국어로 교차 출처 리소스 공유라고 하며 웹 페이지 상의 제한된 리소스를 최초 자원이 서비스된 도메인 밖의 다른 도메인으로부터 요청할 수 있게 허용하는 구조입니다.
django 같은 경우, 기본적으로 8000 포트를 사용하고 있기 때문에 다른 포트를 사용하는 프론트 서버와 통신을 막고 있습니다.
따라서 CORS
를 설정하지 않은 상태로, 프론트 서버에서 통신을 요청하면 다음과 같은 에러를 확인할 수 있습니다.
Access to fetch at 'http://localhost:8000/auth/login' from origin 'http://localhost:3000' has been blocked by CORS policy: No'Access-Control-Allow-Origin'
다행히 django 에서 손쉽게 CORS
설정 할 수 있습니다.
CORS in django
우선 파이썬 패키지를 설치해줍니다.
pip install django-cors-headers
그 후 settings 에서 몇 가지 설정을 추가해줍니다.
# settings.py
INSTALLED_APPS = [
...
'corsheaders',
]
MIDDLEWARE = [
...
'corsheaders.middleware.CorsMiddleware',
]
마찬가지로 settings 에서 원하는 도메인을 추가할 수 있습니다.
CORS_ORIGIN_WHITELIST = (
'http://localhost:3000',
'http://127.0.0.1:3000'
)
상황에 따라서는 개별적으로 추가하지 않고 전체 도메인에 대해서도 추가가 가능합니다.
CORS_ORIGIN_ALLOW_ALL = True
'웹프로그래밍 > DRF' 카테고리의 다른 글
[Django] Serializer Custom Field, SerializerMethodField (0) | 2020.02.26 |
---|---|
[Django] APIView에 permission 지정하기 (1) | 2020.02.26 |
[Django] Token 인증 적용하기, TokenAuthentication (3) | 2020.01.14 |
[Django] rest_framework default 설정 (0) | 2020.01.08 |
[Django] Throttling (0) | 2020.01.08 |
Comments