일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 코딩테스트
- 초기셋팅
- error
- 오블완
- CORS
- domain
- vercel
- useRouter
- React
- vscode
- 티스토리챌린지
- 코드카타
- 소셜 로그인
- 내일배움캠프
- 모던자바스크립트
- 모던 자바스크립트
- deep dive
- 코테
- 셋팅
- nextjs
- 자주 까먹는
- 프로젝트 셋팅
- 리터럴
- js
- 프로그래머스
- git
- array정적메서드
- 구글 로그인
- Next
- 스파르타코딩클럽
- Today
- Total
파피루스
아니 으사 양반, 로컬에서 CORS가? 본문
오류 원인
html 파일에서 module 타입의 js import를 한 뒤, 파일 경로로 접근하니 CORS error가 난다.
Access to script at 'file:///C:/Users/블라블라블라/파일명.js' from origin 'null' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, isolated-app, chrome-extension, chrome, https, chrome-untrusted.
오류 메세지를 읽고 다시 보니, 파일 경로에는 말그대로 origin이 빠져있다. (origin = 프로토콜 + 호스트 + 포트)
- https://reeny404.tistory.com/manage/newpost/30 에서 origin은 https://reeny404.tistory.com/ 요 부분 이다.
- 파일 경로 file:///C:/Users/블라블라블라/파일명.js 을 보면 프로토콜, 호스트 모두 없다 경로만 존재한다.
해결 방법
일단, local 서버를 올려서 해결했다. (https://takeknowledge.tistory.com/151)
그런데 origin이 null이라면 셋팅해주면 되는거 아냐?
CORS(Cross-Origin Resource Sharing, 교차 출처 리소스 공유) 에러는 출처가 서로 다른 서버간의 리소스 공유하려고 할 때 오류가 난다. 예전에는 한 도메인 안에서 백, 프론트를 모두 구성했으나, 점점 서로 다른 도메인의 클라이언트와 API가 많아지면서 CORS 정책이 생겨났다. CORS는 출처를 알 수 없는 서버로부터의 통신을 막기위한 보안 장치에 가깝다. 브라우저에서 origin을 셋팅하는 것은 보안 장치를 우회하려는 것에 가깝다. 하지말자!
글을 적기 위해 읽은 것들
- https://ko.javascript.info/fetch-crossorigin
- https://developer.mozilla.org/ko/docs/Web/HTTP/Headers/Origin
- https://developer.mozilla.org/ko/docs/Web/HTTP/CORS
- https://developer.mozilla.org/ko/docs/Web/HTML/Element/script#referrerpolicy
- https://docs.tosspayments.com/resources/glossary/cors
'Today I Learned > in dev' 카테고리의 다른 글
[오류] Error: Invalid src prop (0) | 2024.07.03 |
---|---|
밥 아저씨, 이게 바로 쉬운 로컬 서버 셋팅이에YO (0) | 2024.05.08 |
체리 키보드, alt tab 혹은 windows 키 먹통 (0) | 2024.04.28 |
[vscode] nodejs 디버깅 셋팅 (0) | 2024.04.25 |
[html] script type="이게 뭘까?" : MIME 타입 (0) | 2024.04.23 |