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);
        }
    }

 

 

 

 

 

📖 참고

https://ocblog.tistory.com/48

 

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