NestJS CORS - header setting

ansunny1170·2023년 7월 10일
0

개발

목록 보기
8/15

참고 사이트 - NestJS CORS

시작하는 말

dev 서버에서는 정상 작동 하던 기능이 prod 서버에서 제대로 작동하지 않는 문제를 확인했습니다.
파일을 다운로드 받는 기능에서 문제가 생겼습니다.

브라우저 개발자 모드에서 현상을 보자면, dev와는 다르게 options method를 한번더 요청하는데, options는 204 OK이고 get은 204을 받지 못하는게 문제였습니다.

마치 options가 ok상태를 받아 get이 받지 못하는 느낌도 들었는데,,, 이건 정말 느낌뿐이었습니다.

해결방법

해결하고나서 며칠이나 후에 작성하는 글이기 때문에 참고할만한 이미지 및 설명이 다소 부족합니다.

결론부터 말하자면 DNS를 사용하는 prod 서버에서는 특정 res header를 설정하기 위해서는 추가로 명시를 해줘야 합니다.
ExposedHeaders에 추가해 주면 됩니다.
ExposeHeaders란?

  app.enableCors({
    origin: [
      'http://localhost:3000',
      ...
    ],
    credentials: true,
    exposedHeaders: ['Content-Type', 'Content-Disposition', 'Content-Location']
    // methods: ['GET', 'POST', 'PUT', 'DELETE', 'PATCH', 'OPTIONS'],
    // optionsSuccessStatus: 204
    // allowedHeaders: ['Content-Type', 'Authorization']
  })
  app.use(cookieParser())

마치는 말

문제를 당면했을 때, 관련 키워드만 제대로 캣치해도 문제의 반은 풀었다고 생각합니다.
알고보면 정말 간단한 설정인데, 이유를 모르니 구글 검색에도 상당한 시간을 소요하게 되었습니다.

이렇게 하나씩 알아가는 거겠죠.. 흑흑

profile
공정 설비 개발/연구원에서 웹 서비스 개발자로 경력 이전하였습니다. Node.js 백엔드 기반 풀스택 개발자를 목표로 하고 있습니다.

0개의 댓글