Recent Posts
Recent Comments
Archives
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- domain
- 코딩테스트
- 모던자바스크립트
- 오블완
- 프로그래머스
- git
- Next
- 모던 자바스크립트
- 내일배움캠프
- 셋팅
- nextjs
- 리터럴
- vscode
- CORS
- deep dive
- error
- 초기셋팅
- 자주 까먹는
- 프로젝트 셋팅
- vercel
- 티스토리챌린지
- 소셜 로그인
- React
- js
- 코드카타
- 스파르타코딩클럽
- useRouter
- array정적메서드
- 코테
- 구글 로그인
- Today
- Total
도록
[CORS] fetch는 OK인데, axios에서만 CORS가 나요 본문
요약해서 말하면, axios와 fetch의 기본 설정이 달라 같은 요청처럼 보여도 다른 처리가 되고 있기 떄문이다.
내 개발 환경에서는 Gateway가 api prefix를 붙여주는데, 여기에서 오류가 발생하고 있었다.
나는 내가 직접 prefix를 붙여주는 방식으로 해결했다.
- Gateway로 API요청을 보내면, api path를 보고 사용자면 auth server로, project라면 project server로 요청을 보낸다.
- 요청을 분기 쳐줄 때, api의 path에 api path의 prefix를 붙여준다.
(ex. http://gateway-host.com/api/login -> http://auth-host.com/auth/api/login) - origin 주소가 요청한 내 주소(localhost) 가 아닌 gateway의 주소가 들어가 CORS가 발생했다.
fetch와 axios는 동작 방식이 다르다.
- 기본적으로 fetch는 정말 최소한의 설정만 되어 있고, 개발자가 필요한 것들을 커스텀해서 써야한다. 가볍다.
- axios 는 조금 더 편의성을 위해 자주하는 설정들이 추가되어 있다.
fetch | axios | |
default Content-Type | 보내지 않음 (필요할 때 개발자가 설정해주어야 함) |
application/json → preflight 요청 발생 |
withCredentials | false (특정 설정에서는 true) |
같이 보면 좋은 것들
'Today I Learned > in dev' 카테고리의 다른 글
SockJs 적용하기 (React/typescript) (0) | 2024.12.23 |
---|---|
tailwind css가 dev, prod에 올리면 적용되지 않아요 (0) | 2024.12.11 |
세션이란? (feat. cookie) (0) | 2024.11.24 |
[vscode] delete `CR` error 해결법 (0) | 2024.11.16 |
기존 react 프로젝트에 typescript 도입하기 (0) | 2024.11.01 |