아이퐁퐁
248
2021-11-15 21:59:56
6
248

ajax를 이용해서 로그인 실패시 alert 창 구현을 하고 싶습니다.


안녕하세요.

제 나름대로 해보려다가 예제를 참고도 해봤는데... 아직 너무 미숙해서 해결하기

어려워 질문을 올립니다.


ajax를 이용해서 로그인 실패시 alert 창을 구현하고 싶은데 잘 모르겠습니다.



// 로그인 처리
	@ResponseBody
	@RequestMapping(value = "/login", method = RequestMethod.POST)
	public String login(UserVO userVO, HttpServletRequest req, HttpServletResponse res,
			@RequestParam("userId") String userId, @RequestParam("userPwd") String userPwd) throws Exception {
		
		HttpSession session = req.getSession();
		
		UserVO login = userservice.login(userVO);

		if(login == null) {
			session.setAttribute("user", null);
			return "no";
		} else {
			session.setAttribute("user", login);
			return "ok";
		}

	}

컨트롤러 부분입니다.



$("#loginBtn").click(function(){
	
	var userId = $("userId").val();
	var userPwd = $("userPwd").val();
	
	$.ajax({
		type: "post",
		url : "/diary/login",
		dataType : "json",
		data : {"userId":userId, "userPwd", userPwd},
		success : function(data){
			console.log(data);
			if (data == "no"){
				alert("아이디 또는 비밀번호를 확인해주세요.");
				return false;
			} else {
				window.location.href = "/diary/index";
			}
		}
		
	})
});


jsp 부분입니다.


로그인 창에서 없는 아이디와 비밀번호로 로그인을 하면 


컨트롤러 부분의 return 값이 창에 뜨네요.

다른 예제를 참고해서 비슷하게 만들어봐도 달라지는 게 없어서 

잘못된 부분을 찾아보고 싶습니다.


제가 어떤 부분을 다시 봐야하고 어떤식으로 접근해야 하는지 조언을 주시면 감사하겠습니다.

감사합니다.



0
  • 답변 6

  • [경기]초보개발자
    38
    2021-11-15 22:57:04

    창에뜬다는게 alert 창에뜬다는건가요?

  • 아이퐁퐁
    248
    2021-11-15 23:28:43

     Alert 창이 아닌 그냥 빈 화면에 return 값이 출력됩니다….

  • 감자도둑
    43
    2021-11-15 23:46:45

    dataType은 json으로 적어두시고 return은 String으로 하셨네요

    dataType 지우시는게..

  • 감자도둑
    43
    2021-11-15 23:48:57

    그리고 ajax에 data 부분에서 userPwd 라는 key 값으로 userPwd를 넘기고 싶으신거면 ,가 아닌 :로 바꾸는게 맞을 거 같습니다!

  • TeraGo
    850
    2021-11-16 02:27:58

    리턴값을 json 형식으로 넣고 그 값에 msg 와 코드를 같이 넣으세요.


    예를들면 로그인 실패 사유가 여러가지일경우 if ? == 200 성공 else 실패 alert(넘어온 msg ) 값


    이런식으로.

  • 아이퐁퐁
    248
    2021-11-25 21:48:54
  • 로그인을 하시면 답변을 등록할 수 있습니다.