게시글이 도움이 되었다면
게시글의 광고 클릭,
[로그인]이 필요 없는 ❤ 눌러주세요:)
환경 및 상황)
본인 = API 백엔드 개발
타인 = 화면개발(특이점 : 다른 협력중인 업체 인력 + 일면식없음)
본인이 API개발한부분 POSTMAN으로 테스트 했을때 결과값 return 정상으로 떨어지는거 확인했음.
화면에서 AJAX이용해 해당 API 보내면 에러난다고 봐달라고함.
내가 보기엔 문제 없음. 왜? 난 API테스트만 가능하니까. 그리고 거기서 값을 넣으면 정상으로 떨어지니까.,,
에러)
HttpMessageNotReadableException
이부분을 프로젝트에 ExceptionController를 따로 만들어서 에러를 잡도록 만들어두었다.
내역이 나오지를 않아 log에 getCause()를 이용해 내역을 출력도 해보았는데 [Required request body is missing] 이 나왔다.
원인)
구선생에게 물어본 결과 원인은 크게 3가지이다.
1. 화면에서 보낸 데이터가 JSON 형식에서 벗어난 경우
2. 화면에서 데이터를 실수로 아예 없이 보내는 경우
3. API를 @GetMapping 으로 만든 경우
해결법)
1. Json 형식에 맞춰 데이터를 보내주면 된다.
사실상 가장 흔한 에러이자 고치기 가장 쉬운 에러형식. 말 그대로 단순 실수
2. 화면에서 데이터를 보내면 된다~
이건 사실 나의 과거 기록을 보고 알았다. 나도 이 실수를 했었다더라..~ 라는걸 내 블로그 글을 보고 알게되었음. 해당 내용은 링크 참고 <- 누르면 이동합니다.
3. 이건 상상도 못했음. 화면개발자가 GET 말고 POST로 바꿔주면 안되냐고 해서 해봤더니 잘됨; 당황잼.. POSTMAN으로 API 테스트 시 GetMapping을 사용해도 잘 return값이 원하는대로 나와줘서 진짜 상상도 못했음 ㄴㅇㄱ
추측상 AJAX 사용시 GET method를 사용하면 data값이 넘어오지를 않는것같음. 같음이 아니라 추측에서 확신이 됨. 스스로가 이렇게 말미잘같이 느껴질줄이야.. Controller단에서 Method를 GET-> POST로 바꿔주면 됨,,
이건 기록감이다..!
진심 이게 왜? 왜 내탓이란말이냐?! 라는 생각에 프론트엔드한테 이거 내탓아니다. 데이터가 없다고 한다. 들어오는 값 없다. 다시 확인해라 100만번 말함.ㅋ,, 근데 결국 내 문제..ㅎ
이 글을 보시진 않으시겠지만 죄송합니다~ 죄송합니ㅏㄷ~~~ㅏㅏ~~ㅠㅠ 당신의 오후시간을 훔쳐서 죄송합니다ㅠㅠ..
진짜 면목이 없음.. 오늘 하루 일시 휴직하고싶을정도로 창피함..
다시는 같은 실수를 반복하는 일 없도록 기록한다. 정신차리고 살어~~ 내 자신아~~~~~~~~~~~~~