티스토리 뷰
[오류코드]
$.ajax({
type : "POST",
dataType : "json", // 서버로 부터 받을 데이터 타입
url : "/json/boardBean",
data : ktd_id, //'17d7437d-0eb8-4277-b78b-da8306000958'
success : function(data) {
alert("성공");
console.log(data.ktd_name);
},
error : function(e) {
alert(e.statusText);
}
});
이렇게 요청하니 계속 parsererror가 났다.
그래서
$.ajax({
type : "GET",
dataType : "json", // 서버로 부터 받을 데이터 타입
url : "/json/boardBean"+"?ktd_id="+ktd_id,
success : function(data) {
alert("성공");
console.log(data.ktd_name);
},
error : function(e) {
alert(e.statusText);
}
});
이렇게 GET방식으로 요청을 했더니 잘 받아지는 것..
맨 위의 코드의 문제는 data를 Object로 전송하지 않아서 인듯하여 아래와 같이 코드를 바꾸어주었더니
$.ajax({
type : "POST",
dataType : "json", // 서버로 부터 받을 데이터 타입
url : "/json/boardBean",
data : {ktd_id : ktd_id },
success : function(data) {
alert("성공");
console.log(data.ktd_name);
},
error : function(e) {
alert(e.statusText);
}
전송이 되었다.
$.ajax API 문서를 보면 string도 된다고 되어있는데 생각해보면 서버 코드가 아래와 같은데
@RequestMapping(value="/json/boardBean", method=RequestMethod.POST)
@ResponseBody
public BoardBean json(String ktd_id) {
BoardBean boardBean = boardService.selectOne(ktd_id);
return boardBean;
}
서버가 어떻게 ktd_id가 뭔지 알고 가져올까 싶기도 하다. 요청 파라미터가 뭔지도 모르니..
(참고로 요청 파라미터 이름과 받는 값을 다르게 가져오고 싶다면 @RequestParam("ktd_id") String id 이런 식으로 명확히 명시해 줄 수 있다. 그 밖의 다양한 설정 옵션은 @Requestparam 문서를 참고.. )
결국, 하나의 parameter를 넘기는데 POST 방식을 사용하는 것 보다는 GET방식을,
그리고 좀더 깔끔하게 RESTful 방식으로 전송하는게 좋겠다고 생각하여 아래와 같이 최종코드를 변경하였다.
[해결 코드]
- 자바스크립트 코드
$.ajax({
type : "GET",
dataType : "json", // 서버로 부터 받을 데이터 타입
url : "/json/boardBean"+"/"+ktd_id,
success : function(data) {
alert("성공");
console.log(data.ktd_name);
},
error : function(e) {
alert(e.statusText);
}
});
- 자바 코드
@RequestMapping(value="/json/boardBean/{ktd_id}", method=RequestMethod.GET)
@ResponseBody
public BoardBean json(@PathVariable String ktd_id) {
BoardBean boardBean = boardService.selectOne(ktd_id);
return boardBean;
}
무작정 구글링하는 것보다 API문서를 차근차근 파악하는것이 더 정석인 듯 하다.
'Spring' 카테고리의 다른 글
Spring(5)_MVC(2)_Ajax&JSON (0) | 2019.12.12 |
---|---|
Spring(4)_Interceptor (0) | 2019.12.12 |
Spring(3)_DB연결(2)&MVC (0) | 2019.12.12 |
Spring(2)_DB연결&Security (0) | 2019.12.12 |
Spring(1)_설정파일 (0) | 2019.12.12 |
댓글