서버에서 API 스팩을 잘못 개발했을 경우 클라이언트 개발자에게서 겪는 문제이다.
Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
살다살다 아래와 같은 에러를 만나게 됬다.
error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
at ServerResponse.setHeader (_http_outgoing.js:561:11)
at sendJson (/Users/kyungseo.park/Documents/sunyoh-web/node_modules/next/dist/next-server/server/api-utils.js:37:5)
at ServerResponse.apiRes.json (/Users/kyungseo.park/Documents/sunyoh-web/node_modules/next/dist/next-server/server/api-utils.js:6:297)
at handler (webpack-internal:///./pages/api/menus.ts:21:21)
at runMicrotasks (<anonymous>)
at processTicksAndRejections (internal/process/task_queues.js:95:5)
at async apiResolver (/Users/kyungseo.park/Documents/sunyoh-web/node_modules/next/dist/next-server/server/api-utils.js:8:1)
at async DevServer.handleApiRequest (/Users/kyungseo.park/Documents/sunyoh-web/node_modules/next/dist/next-server/server/next-server.js:64:462)
at async Object.fn (/Users/kyungseo.park/Documents/sunyoh-web/node_modules/next/dist/next-server/server/next-server.js:56:492)
at async Router.execute (/Users/kyungseo.park/Documents/sunyoh-web/node_modules/next/dist/next-server/server/router.js:23:67)
at async DevServer.run (/Users/kyungseo.park/Documents/sunyoh-web/node_modules/next/dist/next-server/server/next-server.js:66:1042)
at async DevServer.handleRequest (/Users/kyungseo.park/Documents/sunyoh-web/node_modules/next/dist/next-server/server/next-server.js:34:504) {
code: 'ERR_HTTP_HEADERS_SENT'
}
원인
HTTP에서 응답이 2번옴
해결방법 : HTTP 1회 요청에 1회 응답만 오도록 코드를 수정한다.
해당 이슈는 2021년 7월에 발생했으나, 2019년도에 동일한 이슈를 경험한 적이 있다.
당시 스팩은 jquery + php 였다.
상황은 버튼 클릭 시 3개의 파일 다운로드를 하는 것이었는데 팝업으로 이벤트가 뜨면서 다운로드가 안됬다.
그렇기에 zip 으로 압축해서 다운로드를 하게 했다.
'실무 경험 > 실무 개발 & 협업' 카테고리의 다른 글
| 2022 - 휴가만 쓰면 발생하는 우마카세가 삼겹살로 바뀌던 날: 크리스마스 전전날의 악몽 (TLS 이슈) (0) | 2024.02.29 |
|---|---|
| 2023 - Bulk Mailler 실종 사건 (0) | 2024.02.29 |
| [문서화] - API 문서 도입 + 작성하기 (0) | 2024.02.16 |
| 2022 - TLS 1.0, TLS 1.1 지원 중단으로 인한 TLS 버전 업그레이드 회고 (0) | 2024.02.10 |
| 좋은 주석을 작성하는 방법 (0) | 2023.05.30 |