Backend/Spring Boot
[Spring] TypeError: Failed to execute 'fetch' on 'Window' : Request with GET/HEAD method cannot have body.
giraffe_
2023. 3. 26. 23:51
Swagger에서 API를 테스트하는데 에러가 났다!

💻 에러 메시지
Failed to execute 'fetch' on 'Window' : Request with GET/HEAD method cannot have body.
🔎 원인
Get 방식으로 RequestBody로 보내려고 했던 것이 원인이었다. 아무 생각없이 조회니까 Get방식으로 해야지~ 했다..
@GetMapping("/one")
public ResponseEntity<?> list(@RequestBody TicketReq ticketReq) {
try {
List<TicketRes> list = ticketService.getTicketList(ticketReq);
if (list != null && !list.isEmpty()) {
return new ResponseEntity<List<TicketRes>>(list, HttpStatus.OK);
} else {
return new ResponseEntity<Void>(HttpStatus.NO_CONTENT);
}
} catch (Exception e) {
return exceptionHandling(e);
}
}
💡 해결
구글링을 통해 Post 방식으로 바꿔서 보내라는 해결법을 찾았고, Post 방식으로 고쳐서 보냈더니 된다.
맞다. RequestBody로 Get으로 보내는 건 말이 안된다..
@PostMapping("/one")
public ResponseEntity<?> list(@RequestBody TicketReq ticketReq) {
try {
List<TicketRes> list = ticketService.getTicketList(ticketReq);
if (list != null && !list.isEmpty()) {
return new ResponseEntity<List<TicketRes>>(list, HttpStatus.OK);
} else {
return new ResponseEntity<Void>(HttpStatus.NO_CONTENT);
}
} catch (Exception e) {
return exceptionHandling(e);
}
}
📖 참고
Spring / Uncaught (in promise) TypeError: Failed to execute 'fetch' on 'Window' : Request with GET/HEAD method cannot have body.
fetch api 를 이용하여 @RequestBody 와 @RequestParam 을 실습해보려고 했는데 왠일인지 그전에 오류를 만나게 되었다. 실습 환경 먼저 데이터를 전송하기위해 간단한 버튼하나를 만들었다. 데이터 전송
ocblog.tistory.com