[Spring Boot 게시판] 36일차

김정현·2022년 11월 17일
0

SPRINGBOOT게시판

목록 보기
36/36

ajax요청 판별, 인터셉터에서 ajax요청시 응답 방식 변경

  • ajax통신시 인터셉터에서 html로 응답되고 있어 json형식으로 변경

1) rq객체

		String requestUri = req.getRequestURI();

		boolean isAjax = requestUri.endsWith("Ajax");

		if (isAjax == false) {
			if (paramMap.containsKey("ajax") && paramMap.get("ajax").equals("Y")) {
				isAjax = true;
			} else 
				if (paramMap.containsKey("ajaxMode") && paramMap.get("ajaxMode").equals("Y")) {
				isAjax = true;
			}
		}
		if (isAjax == false) {
			if (requestUri.contains("/get")) {
				isAjax = true;
			}
		}
		this.isAjax = isAjax;
  • 요청이 오면 파라미터들을 paramMap에 키와 밸류로 저장하고 있다.
  • Ajax요청시 파라미터로 ajaxMode : 'Y'를 함께 전송하고있다.
  • paramMap에 ajaxMode키와 값의 유/무를 통해 Ajax요청인지를 알수있다.
  • boolean isAjax : Ajax요청 판별 변수

2) NeedLogoutInterceptor

		if(rq.isLogined()) {
			if(rq.isAjax()) {
				resp.setContentType("application/json; charset=UTF-8");
				resp.getWriter().append("{\"resultCode\":\"F-B\",\"msg\":\"로그아웃 후 이용해주세요\"}");
			}else {
				rq.printHistoryBackJs("로그아웃 후 이용 가능합니다.");
			}				
			return false;
  • ajax요청이라면 json으로 응답

3) join.jsp

		if(data.resultCode== "F-B"){
				alert(data.msg);
				location.replace('/');
				return;
			}
  • 회원 가입 하는 도중 다른 탭에서 로그인을 했다면 로그인아이디 체크시(ajax통신 시)
  • 가입이 진행되지 않도록 replace

0개의 댓글

관련 채용 정보