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
- CORS
- js
- 프로그래머스
- 스파르타코딩클럽
- React
- 오블완
- deep dive
- 초기셋팅
- 셋팅
- 내일배움캠프
- 프로젝트 셋팅
- error
- 코딩테스트
- vscode
- 구글 로그인
- nextjs
- 모던자바스크립트
- Next
- vercel
- useRouter
- 티스토리챌린지
- 코드카타
- array정적메서드
- Today
- Total
파피루스
[CORS] fetch는 OK인데, axios에서만 CORS가 나요 본문
요약해서 말하면, axios와 fetch의 기본 설정이 달라 같은 요청처럼 보여도 다른 처리가 되고 있기 떄문이다.
나는 이런 Gateway 문제였고, 따로 설정 하지않고 그냥 내가 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 |