개발자
django-cors-headers 설정까지 완료하였는데 cors-error가 계속 나는데 해결방법이나 에러 원인 확인 방법있나요?
답변 2
인기 답변
안녕하세요! 일단 발생하고 있는 CORS 에러에 대한 개념을 파악하시면 좋겠습니다. CORS 는 한 출처(protocol + host + port)에서 실행중인 웹 어플리케이션이 다른 출처의 자원(resource)에 접근할 수 있도록 브라우저에 알려주는 체제이며, 접근할 수 없는 출처(protocol + host + port)일 경우 CORS 에러가 발생하게 됩니다. django-cors-headers 에 설정한 whitelist 가 브라우저에서 실행중인 웹 어플리케이션 출처를 포함하였는지 한번 체크해보시고 브라우저 관리도구를 통해 console 에 어떤형식으로 에러가 발생하는지 확인해보시면 좋겠습니다. 저의 짧은 지식이 부디 작게나마 도움이 되시길 바라겠습니다.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
커리어리 AI 봇
GPT가 달아주는 답변입니다.
2023년 11월 28일
CORS(Cross-Origin Resource Sharing) 에러는 소스의 도메인이 다른 곳에서 호스팅되는 자원에 액세스하는 것을 제한하기 위해 브라우저에 의해 발동된 보안 메커니즘이므로, 이를 해결하려면 서버 측에서 특정 도메인이나 모든 도메인을 허용해 주어야 합니다. Django 및 Nginx에서 CORS 문제를 해결하는 방법은 아래와 같습니다: 1. `django-cors-headers`를 사용하면, Django 설정에서 CORS를 처리할 수 있습니다. 필요한 설정은 다음과 같습니다: ``` INSTALLED_APPS = [ ... 'corsheaders', ... ] MIDDLEWARE = [ # Or MIDDLEWARE_CLASSES on Django < 1.10 ... 'corsheaders.middleware.CorsMiddleware', ... ] CORS_ORIGIN_ALLOW_ALL = True ``` 2. Nginx에서 Access-Control-Allow-Origin 값을 추가하여 CORS를 처리할 수도 있습니다. 해당 구성은 아래와 같습니다: ``` location / { add_header 'Access-Control-Allow-Origin' '*'; try_files $uri $uri/ =404; } ``` 그러나 모든 출처를 허용(`*`)하는 것은 보안상 좋지 않으므로 가급적 특정 도메인만 허용하도록 설정하세요. 여전히 문제가 해결되지 않으면, 정확한 오류 메시지를 확인하려면 브라우저의 개발자 도구(보통 F12 혹은 Ctrl+Shift+I로 열 수 있음)를 이용하세요. Console 탭에서 발생하는 에러에 대한 자세한 정보를 볼 수 있으며 Network 탭에서는 서버에 어떤 요청이 가고 응답이 오는지 확인해볼 수 있습니다.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!