문제
프론트 서버에서 django로 api 요청보냈을때 options method로 반환되고 콘솔에 CORS에러 발생
해결
django-cors-header 적용 (https://github.com/adamchainz/django-cors-headers)
해결과정
CORS에 대해 알아보고, django에 관련 기능이 있는지 구글링
원인분석
1) CORS (Crosss-Origin Resource Sharing)
웹 페이지 상의 제한된 리소스를 최초 자원이 서비스된 도메인 밖의 다른 도메인으로부터 요청할 수 있게 허용하는 구조
2) fetch로 api를 가져올 때는 Http를 사용 이 때 브라우저는 요청 header에 출처를 담아 origin 필드로 전송
서버가 이를 보고 응답을 할 때 header에 access-contrl-allow-orgin이라는 값에 접근하는 것이 허용된다는 것을 내려준다
이 응답을 받은 클라이언트는 원래 요청의 origin과 서버 응답의 access-contrl-allow-orgin을 비교해본 후 이 응답이 유효한 응답인지 아닌지를 결정
'Backend > Django' 카테고리의 다른 글
[Django] 터미널에서 venv 진입 (0) | 2022.07.02 |
---|---|
[Django] DRF - Serializer안의 함수에서 request user 사용 (0) | 2022.07.02 |
[Django] Poetry - UnicodeDecodeError: 'cp949' codec can't decode byte 0xec in position 546: illegal multibyte sequence 에러 해결 (0) | 2022.07.02 |
[Django] JsonResponse (0) | 2022.06.26 |
[Django] DRF - ManyToMany Field의 Serializer (0) | 2022.06.26 |