티스토리 뷰
CORS는 다른 출처의 리소스를 사용할 수 있도록 해주는 정책이다. 출처란 scheme(프로토콜), 호스트(도메인), 포트로 정의된다. 같은 출처에서 요청하고 응답을 해야 하는데 그렇지 않은 경우 CORS에러가 발생하고 proxy설정을 해줌으로써 해결할 수 있다.
CORS에러는 브라우저가 기본적으롤 동일출처정책 SOP을 가지기 때문에 브라우저 단에서 뱉는 오류이다. proxy를 두면 proxy가 중간에서 대리인 역할을 하여 요청과 응답을 탈취하여 처리하기 때문에 브라우저를 속인다고 할 수 있다.
1. package.json에 proxy 추가하기
Webpack dev server에서 제공하는 기능이다.
CORS에러가 떴다. 응답받을 서버 주소와 내가 요청하는 로컬호스트의 출처가 서로 달라서 생긴 문제이다. 프록시서버를 두어 프록시가 요청하고 프록시가 응답해주도록 한다.
// package.json
{
"proxy": "https://api.gptea-test.keenranger.dev", // 서버 주소
}
package.json에 "proxy"를 서버 주소로 입력해서 저장을 하고,
fetch할 때 url은 엔드포인트를 써준다.
참고 https://create-react-app.dev/docs/proxying-api-requests-in-development/
2. proxy 2개 이상 설정하고 싶은 경우 http-proxy-middleware 사용하기
1번 방법으로 전역적인 설정이 아닌, 수동으로 추가 설정할 수 있다.
npm install http-proxy-middleware
// src/setupProxy.js
const { createProxyMiddleware } = require('http-proxy-middleware');
module.exports = function (app) {
app.use(
createProxyMiddleware('/oauth2.0', { // 사용할 엔드포인트
target: 'https://nid.naver.com', // 요청할 서버 주소
changeOrigin: true, // 호스트가 헤더 변경 가능 옵션
})
);
};
그리고 서버를 재시작해주어야 정상적으로 동작한다!!
반응형
'개발 > JS, TS, React' 카테고리의 다른 글
React useRef 사용하기 with TypeScript (0) | 2023.05.26 |
---|---|
React useSelector와 useState를 함께 사용할 때 (0) | 2023.05.23 |
Redux Toolkit 으로 Redux 더 간편하게 사용하기 (0) | 2023.04.30 |
Redux vanillaJS에서 사용하기 (0) | 2023.04.25 |
Redux란 / Redux React에서 사용하기 (0) | 2023.04.24 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- Til
- 공릉 맛집
- 공릉맛집
- 공릉 밀크티
- 을지로맛집
- 태릉 술집
- 태릉 꼬치
- 홍천 삼겹살
- 태릉 이자카야
- 구글서치콘솔
- 티스토리검색
- 춘천맛집
- 이수 맛집
- 롯데월드 보조배터리
- 태릉맛집
- 공릉 술집
- 티스토리
- 신불당 술집
- solo project
- 공릉 이자카야
- 롯데월드 매직패스 프리미엄
- 깃허브 데스크탑 로그아웃
- 롯데월드 키오스크
- 회고
- sitemap
- 공릉 꼬치
- 공릉 카페
- 태릉삼겹살
- 맥 깃허브 데스크탑
- 춘천닭갈비
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함