ajax에서 json.type으로 data 보내주기 /@ResponseBody & @RequestBody

easyliving·2023년 2월 16일

FRONT_END (JAVA_SCRIPT)

목록 보기
48/55

JSON.stringify()

JSON.stringify( )는 자바스크립트의 값을 JSON 문자열로 변환한다.

               var formData={"id":$("#id").val()};
               ->data:JSON.stringify(formData),
 function checkIdBtn(){
			  alert("아이디를 체크합니다");
			  var formData={"id":$("#id").val()}; // member객체의 인스턴스 변수의 이름을 맞춰줘야한다. - 타입은 맞춰서 들어감.
			  $.ajax({
				 url:"checkId",
				 type:"post",
                //기본타입-form 형식으로 전송
				 data:formData, 
                //json 타입으로 전달
                //data:JSON.stringify(formData),
				 dataType:"json",//받을때 json이라는 json format으로 받겟다
				 //contentType:"application/json; charset=utf-8;",
                // 보낼때 해당되는 내용  mine 타입
				 success:function(data){
					 alert("성공");
					 console.log(data);
				 },
				 error:function(){
					 alert("실패");
				 }
			  });
		  }

Mcontroller

View 페이지가 아닌 반환값 그대로 클라이언트한테 return 하고 싶은 경우 @ResponseBody를 사용하면 된다.

@RequestBody를 통해서 자바객체로 conversion을 한다.(json 기반의 HTTP Body를 자바 객체로 변환)

일반적인 GET/POST의 요청 파라미터라면 @RequestBody를 사용할 일이 없을 것이다.

@ResponseBody 자바객체를 HTTP요청의 바디내용으로 매핑하여 클라이언트로 전송한다.

반면에 xml이나 json기반의 메시지를 사용하는 요청의 경우에 이 방법이 매우 유용하다.


@ResponseBody
	@RequestMapping("/checkId")
	public MemberVo checkId( MemberVo m) {
	//public MemberVo checkId(@RequestBody MemberVo m) { <-json일때
		System.out.println("Mcontroller:"+m.getId());
		//DB에서 확인
		String[] hobbys={"swim","jogging","game"};
		MemberVo mvo=new MemberVo("aaa","1111","이마로","010-1111-1111","female",hobbys);
		
		return mvo; // WEB-INF/views/mvo.jsp 
		
	}

requestBody/ responseBody 참조 글

profile
가끔져요

0개의 댓글