기은P
시간이 멈추는 장소
기은P
  • Programming (272)
    • 개발노트 (1)
    • FrontEnd (56)
      • ES&JS 문법 (14)
      • HTML&CSS (4)
      • React 기본 (18)
      • React 심화 (12)
      • React 이슈 (2)
      • Project 연습 (1)
      • Next.js (5)
    • Backend&Devops (33)
      • AWS (2)
      • Docker (9)
      • Jenkins (6)
      • Nginx (6)
      • Node.js (1)
      • ElasticSearch (5)
      • 프레임워크&아키텍처 (2)
      • 암호화 (0)
      • 기타 (2)
    • 알고리즘 (3)
    • C# (8)
      • WPF (8)
    • Java (51)
      • 순수 Java (18)
      • RDF&Jena (12)
      • RCP&GEF (9)
      • JMX (5)
      • JMapper (3)
      • 오류해결 (4)
    • Database (21)
      • RDBMS (9)
      • NoSQL (2)
      • TSDB (1)
      • GraphQL (1)
      • Hibernate (3)
      • 데이터베이스 이론 (4)
      • Redis (1)
    • 프로토콜 (11)
      • Netty (4)
      • gRPC (5)
      • 프로토콜 개념 (2)
    • Server (4)
      • Linux (4)
    • 2020 정보처리기사 필기 (43)
      • 목차 (1)
      • 기출문제 (1)
      • 1과목 - 소프트웨어 설계 (6)
      • 2과목 - 소프트웨어 개발 (7)
      • 3과목 - 데이터베이스 구축 (8)
      • 4과목 - 프로그래밍 언어 활용 (7)
      • 5과목 - 정보시스템 구축 관리 (10)
    • 2020 정보처리기사 실기 (31)
      • 목차 (4)
      • 기출예상문제 (19)
      • 실기요약 (8)
    • 빅데이터분석기사 필기 (4)
      • 목차 (0)
      • 필기 요약 (3)
    • 전기 공학 (1)
      • CIM (1)
    • 산업자동화시스템 (3)
      • SCADA (1)
      • OPC UA (2)
    • 디자인패턴 (1)
    • 휴지통 (0)

공지사항

  • 공지사항/포스팅 예정 항목

최근 댓글

최근 글

전체 방문자
오늘
어제

티스토리

hELLO · Designed By 정상우.
기은P

시간이 멈추는 장소

FrontEnd/Next.js

[Next.js] Proxy Axios 설정

2022. 6. 20. 10:52
반응형

1. 개요

Axios를 사용해 Next.js서버가 아닌 다른 도메인으로 url을 요청할 때가 있는데, 이때 프록시 설정을 하지 않으면 CORS 오류로 인해 호출이 되지 않는 경우가 있습니다.

또한, React에서 package.json에 프록시를 명시한 것과 다르게 Next.js에서 Proxy는 조금 다른 방법으로 설정을 해야만 했습니다.

 

 

2. 코드

Axios 호출

  useEffect(() => {
    async function get() {
      try {
        const result: AxiosResponse<any, any> = await axios.post("/redis/visit");
        console.log(result.data)
        if (result) setVisitor(result.data)
      }
      catch (e) {

      }
    }
    get();
  }, []);

사용자가 페이지가 로딩될 때 api가 호출되게끔 하기 위해 useEffect에 동기적으로 api를 호출하는 코드를 작성했습니다.

 

next.config.js

module.exports = (phase, { defaultConfig }) => {
  const rewrites = () => {
    return [
      {
        source: '/redis/:path*',
        destination: "http://172.12.0.1:4949/redis/:path*",
      },
    ];
  }
  
  return { rewrites }
}

module.exports에 const rewrites 함수를 정의하고,

리턴하는 배열의 source에는 axios에서 호출하는 path 부분만 작성하며,

destination에는 실제로 접근해야할 URL과 포트를 포함해서 작성하면 됩니다.

 

next.js에서 초기에 설정해야할 값들이 많은데, 어떤 곳에서는 redirect를 써야한다, 함수를 호출하거나 변수로 먼저 선언한다던가, 다 시도를 해보아도 되지가 않았지만, 위 방법을 사용하니 잘 작동했습니다.

 

 

참고

https://www.edmondchuc.com/blog/next-js-development-proxy-server

 

반응형
저작자표시 변경금지 (새창열림)

'FrontEnd > Next.js' 카테고리의 다른 글

[Next.js] Antd es module 사용시 이슈(nextjs antd syntaxerror cannot use import statement outside a module)  (0) 2024.06.27
[Next.js] router query(props) 값이 비어있는 오류  (0) 2022.07.15
[Next.js] SSG, SSR 개념 정리  (0) 2022.06.02
[Next.js] Hydrate란?  (0) 2022.05.18
    'FrontEnd/Next.js' 카테고리의 다른 글
    • [Next.js] Antd es module 사용시 이슈(nextjs antd syntaxerror cannot use import statement outside a module)
    • [Next.js] router query(props) 값이 비어있는 오류
    • [Next.js] SSG, SSR 개념 정리
    • [Next.js] Hydrate란?
    기은P
    기은P
    기은P의 블로그 일상과 개발 관련 포스팅 #React #Typescript #Next #Nest https://github.com/kimdongjang

    티스토리툴바