프로그래밍/- 남굼성의 Spring 교육
JS & Ajax 통신
즐겁게 하하하
2022. 2. 11. 21:05
728x90
Ajax
var formData = $("#loginForm").serialize();
$.ajax({
type: "POST",
contentType: "application/x-www-form-urlencoded; charset=UTF-8",
url: "/login/start",
data: formData,
dataType: "json",
async : false,
success: function (result) {
switch(result.status){
case "success" : location.href="dashboard"; break;
case "pw_check" :
showModal("alertModal" ,"비밀번호를 확인 하세요.\n\n5/" + result.trial + " 회 실패.");
break;
case "trial_fail" :
showModal("alertModal" ,"시도횟수를 초과 하였습니다. 비밀번호 찾기를 이용하세요.");
break;
case "no_user" :
showModal("alertModal" ,"존재하지 않는 사용자 입니다.");
break;
default :
showModal("alertModal",result.status);
break;
}
},
error: function () {
showModal("alertModal" ,"페이지에 에러가 있습니다!");
}
});
1. return dataType: "json"
@ResponseBody
@RequestMapping("/login/start")
public Map<String, Object> login(HttpSession session , @ModelAttribute("userVO") UserDTO userDTO ) throws Exception {
Map<String, Object> resultMap = new HashMap<>();
try{
resultMap.put("status", "success");
}catch(Exception e){
resultMap.put("status",e.getMessage());
return resultMap;
}
return resultMap;
}
2. return dataType: "Text"
@ResponseBody
@PostMapping("/login/changePw")
public String changePw() {
return "String...";
}
3. get 방식 data Send
$('.btnGrant').on('click', function() {
const it_user_nm = $(this).closest("tr").find("#chk_user_nm").val();
submitFlag = true;
location.href = "/basic/auth_modify?it_user_nm=" + it_user_nm;
});
@GetMapping("/auth_modify")
public ModelAndView userAuthModifyPage(HttpSession session , HttpServletRequest request ) throws Exception{
mv.addObject("it_user_nm",request.getParameter("it_user_nm"));
mv.setViewName("/basic/auth_modify");
return mv;
}
3. 주의 !
ajax 통신하려면 ModelAndView를 return 하면 안된다.
특정 Object.. (VO나 DTO등) 혹은 HashMap 같은걸 return 해야 한다.
@ResponseBody를 붙여주면 스프링이 JSON으로 변경해서 보내줍니다.
728x90