2차 프로젝트에서 메인 페이지에 상품 리스트들을 프론트에 전달해주어야하는데 프론트쪽에서 ERR_FAILED가 났다. 내 서버에서는 200이 떴는데 화면에는 내가 전달한 정보들이 뜨지를 않고...
무엇이 문제인지 구글링을 해보다가 이런 페이지를 발견했다.
...무슨 말을 하고 계시는지 이해하지 못했지만 'CORS 정책에 따른 오류가 발생된다.'는 글을 본 순간 ..
서어어어어어어어어어어어얼마!! 내가 아는 그 CORS....? hoxy...? 하면서 생각나는 나의 프로젝트 settings.py....
프론트쪽에서는 도대체 이게 무슨 일이지 하며 오류를 찾기 위해 바쁘고 ...
나는 "저기...잠시만여....제가 문제일 수도 있을 것 같아여..... 잠시만.....잠깐만여...."하며 내 settings.py를 열었다.
app에는 'corsheaders'를 추가해줬는데 middleware에 추가해주지 않았다. 그래서 아주 급하게 추가했다... 추가한 후에는 언제 그랬냐는 듯 내가 보낸 상품 리스트들이 메인 화면에 촤르르르륽...펼쳐졌다.
CORS에러는 나의 도메인에 다른 도메인이 데이터를 요청할 때 허용되지 않아 생기는 오류다
CORS는 Cross Origin Resource Sharing의 줄임말입니다. 즉, 도메인 주소가 다른 서버에 http request를 전송하는 걸 이야기 합니다. 예를 들어, naver.com 에서 api.google.com 으로 http request를 보내면 CORS가 되고 같은 host에서 포트만 달라도 CORS로 간주됩니다.
우리 프론트님께 넘모 넘모 미안했고(ㅠ.ㅠ), 에러를 구글링해보길 잘했다는 생각이 들었다.
django를 배우면서 'corsheaders'를 추가해줄 때마다 정확하게 '왜' 추가하는지 몰랐는데 이렇게 알게되다니... 뜻깊은 하루가 됐다.