티스토리 뷰
728x90
반응형
프론트엔드(클라이언트)에 localhost:3000 포트로 접속하고 벡엔드(서버)로 locahost:5000 포트로 접속하여 클라인언트에서 서버에 데이터를 가져올 경우 CORS 이슈가 발생한다.
CORS란 Cross-origin-resource-sharing의 줄임말로 서로 다른 포트나 도메인을 가진 서버는 아무 설정 없이 Request를 보낼 수 없는 보안 이슈이다.
이 이슈를 해결하기 위해서 프록시(proxy)라는 것을 사용하여 문제를 해결해야 한다.
프록시 서버(proxy server)
클라이언트가 프록시서버를 통해 다른 네트워크 서비스에 간접적으로 접속할 수 있도록 해주는 컴퓨터 시스템이나 응용프로그램이다.
서버와 클라이언트 사이에 중계 시스템으로써 대신 통신을 수행해주는 것을 프록시라 하며 그 기능을 프록시 서버라고 한다.
아래와 같이 http-proxy-middleware라는 것을 사용하여 CORS 이슈를 해결해보자
npm install http-proxy-middleware --save
만약 localhost:3000 포트에서 5000 포트로 접근한다고 했을 경우 CORS 이슈가 발생하여 error가 발생한다.
src 폴더 안에 setupProxy.js 파일을 생성해 주어서 다음과 같은 코드를 작성하면 localhost:5000 포트에 접근이 가능해진다.
http-proxy-middleware를 설치하여 설정하여 준 뒤 axios를 3000번 포트(클라이언트) 통해 localhost:5000에서 데이터를 가져오면 에러없이 데이터에 접근이 가능하다.
import React, { useEffect } from 'react'
import axios from 'axios'
function LandingPage() {
useEffect(() => {
axios.get('/api/hello')
.then(response=> { console.log(response)})
}, [])
return (
<div>
LandingPages
</div>
)
};
export default LandingPage
아래와 같이 data를 받아올 수 있게 된다.
728x90
반응형
'프로그래밍 정보 > JavaScript' 카테고리의 다른 글
JS- Boolean (0) | 2021.05.04 |
---|---|
JavaScript) express-bodyParser (0) | 2021.04.22 |
JSON(JavaScript Object Notaion) (0) | 2021.04.05 |
javascript - array (0) | 2021.03.30 |
window.location (0) | 2021.03.29 |
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 자바스크립트
- SQL
- 라즈베리파이
- var
- QT
- CSS
- 포인터
- Til
- variable
- 20.03.11.(목)
- NestJS
- 오늘의 공부
- tailwind
- Python
- 스타벅스
- 모닝독서
- js syntax
- raspberrypi
- Kernel
- tailwindcss
- 재미있는
- JSON
- 초아
- yocto
- C
- opencv
- JavaScript
- JS
- Linux
- 미라클모닝
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함