티스토리 뷰

[오류코드]

		
        
        
        $.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
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함