Developer N
[jQuery] Ajax() 사용 시 요청처리가 완료되었는데도 404 에러가 발생한 경우 본문
728x90
$.ajax( {
type: "POST",
url: "/test/testUrl",
data: JSON.stringify(params),
contentType: 'application/json',
cache: false,
dataType: 'json',
success: function(data) {
console.log('성공');
},
error: function(jqXHR, status, error) {
alert('에러');
}
});
jQuery의 ajax 메서드를 사용할 때 요청은 정상적으로 처리되었으나 계속해서 404 에러가 났다.
찾아보니 컨트롤러가 Ajax 요청을 받아 처리는 했으나, 다시 돌려주는 값이 없어서 발생하는 에러였다.
즉, 요청은 했는데 응답이 없으니 응답이 없다는 결과가 나온 것이었다.
그런데 나같은 경우는 컨트롤러에서 return 객체를 던져준 상황이었다.
좀더 찾아보니 Response 객체에 응답값을 설정해주면 404 에러가 발생하지 않지만, 이때 데이터 타입은 ajax() 옵션 중 dataType과 일치해야 한다.
나는 dataType을 json으로 설정했는데, 스프링에서는 @ResponseBody 어노테이션을 추가하면 알아서 json 또는 xml 등과 같은 형식으로 변환해준다.
따라서 @ResponseBody 어노테이션만 추가해주면 무사히 응답값을 받을 수 있다.
@RequestMapping("/testUrl")
@ResponseBody
public TestResDto test(@RequestBody TestReqDto reqDto, Model model) throws Exception {
TestResDto result = testService.test(reqDto);
return result;
}
참고)
728x90
'STUDY > JSP | JS' 카테고리의 다른 글
[CSS/JS] css, js 브라우저 캐싱 방지 방법 -버전 관리 (0) | 2024.03.13 |
---|---|
[jQuery] jQuery에서의 이벤트 버블링과 캡처링 (0) | 2023.04.12 |
[jQuery] $.each() 함수에서 break문, continue문 사용하는 방법 (0) | 2023.03.31 |
[jQuery] 이벤트를 중단하는 방법 (0) | 2023.03.30 |
Comments