axios Ngrok와 통신하면서 발생한 문제
2024. 10. 26. 04:30ㆍNestJs
728x90
반응형
서론
프로젝트에서 서버 비용 문제로 인해 빠른 테스트를 위해 개발 과정에서 Ngrok을 사용하기로 결정하였습니다. 그러나 Ngrok을 통한 통신 과정에서 에러가 발생하였습니다.
프론트엔드에서 서버로 API 요청을 보냈으나 요청한 값 대신 이미지와 같은 에러가 발생하였습니다. 백엔드에서는 204 상태 코드와 OPTIONS 요청이 발생하였고, 이를 통해 원인을 분석하였습니다.
원인 분석
204 상태 코드와 OPTIONS 요청이 발생하는 조건은 다음과 같습니다:
- GET, HEAD, POST 요청이 아닌 경우
- Custom HTTP Header가 존재하는 경우
- 유저 에이전트가 자동으로 설정한 헤더
- 예: Connection, User-Agent (en-US) 등
- Fetch 명세에서 “forbidden header name”으로 정의된 헤더
- 수동으로 설정할 수 있는 헤더는 다음과 같은 제한이 있습니다:
- Fetch 명세에서 “CORS-safelisted request-header”로 정의한 헤더만 가능 (Accept, Accept-Language, Content-Language, Content-Type)
- Content-Type이 application/x-www-form-urlencoded, multipart/form-data, text/plain이 아닌 경우
해결방법
'Access-Control-Allow-Credentials': true,
'ngrok-skip-browser-warning': true
headers의 ngrok를 스킵할수있는 코드를 추가해주면 문제없이 해결됩니다.
728x90
반응형
'NestJs' 카테고리의 다른 글
Jest를 활용한 유닛 테스트 (1) | 2024.12.11 |
---|---|
AWS Polly vs Google Text-to-Speech (0) | 2024.12.11 |
NestJS cache-manager 사용하기 (5) | 2024.10.03 |
[NestJS] google-cloud-text-to-speech vs AWS Polly 차이점 & 사용법 (4) | 2024.10.01 |
[NestJS] Postman auth에 토큰 보내기 (0) | 2024.08.07 |