728x90
프론트랑 백의 포트번호가 다르면 OPTIONS라는 요청이 또 간다.
이것이 CORS에 대한 요청이다.

 

 

이것에 대한 해결 방법

 

       전제: 

       프론트의 주소: http://localhost:3090

       백의 주소:  http://localhost:3095

 

 

       백: 

       (노드의 경우)

app.use(
  cors({
    origin: true,
    credentials: true,
  })
);

이렇게 설정을 해준다.

 

 

프론트: 

devServer: {
    port: 3090,
    publicPath: '/dist/',
    proxy: {
        '/api/': {
            target: 'http://localhost:3095',
            changeOrigin: true,
        },
    },
},

 

       💡 이렇게 프록시를 설정 해주면 같은 포트번호인 것 처럼 속여줬기 때문에 같은 도메인끼리 소통한 것 처럼 인식하여 OPTIONS 요청을 안보낸다.

 

      💡 Web pack 데브서버가 CORS문제를 피해갈 수 있게 도움을 준다. 

 

      💡  프론트 백 둘 중 하나만 조치를 취해줘도 되고 둘 다 취해줘도 된다. 방법은 조금 달라질 뿐이다.

                  ex) 백에서 CORS 조치를 취해주면 프론트에서 axios로 요청을 보낼 때 밑에 처럼 해줘야 한다.

더보기

axios.post('http://localhost:3095/api/users', {  ...  }  

 

       ※ 서버랑 프론트 로컬호스트일 때만 프록시 설정 가능.

 

 

axios요청 보낼 때 주의사항

 

       axios.post('http://localhost:3095/api/users', {  ...  }     이 의미는 (포트번호) 3090 -> 3095 로 보낸다는 것이고

 

       axios.post('/api/users', {  ...  }     이 의미는 (포트번호) 3095 -> 3095 로 보낸다는 것이다.

'프레임워크 > React' 카테고리의 다른 글

[React] SWR 설정  (0) 2021.06.26
[React] SWR  (0) 2021.06.25
[React] useCallback  (0) 2021.06.24
[React] emotion을 중점으로한 다양한 css 적용법  (0) 2021.06.24
[React] 코드 스프리팅(code splitting)  (0) 2021.06.24

+ Recent posts