본문 바로가기

Dev/Spring

Intercepter에서 AJAX 구분

728x90
반응형

프로젝트 중 Ajax를 많이 사용하게 된다.

쿠키나 세션을 통해서 사용자 인증시 Ajax의 경우 세션 만료로 인해서 페이지 이동을 시킬 경우가 있다 그런 경우 사용하는 예제.

 

ajax

$.ajax({
	url: '/document/p/api/v2/document_info_view.do',
    type: 'post',
    cache: false,
    data: formData,
    dataType: 'json',
    success: function (data) {                    	
		if (data.rtn_code == '200') {
				var temp_p_info = data.fd_birth_day+" ("+data.fd_age+" / "+data.fd_gender+" )<br/>";
					temp_p_info += data.fd_name;
							
					$("#docuemnt_patient_info").html(temp_p_info);
					$("#view_prosthetic_appliance_info").modal();
		}else{
        	alert(data.rtn_msg);
		}
	},error: function (request, status, error) {
    	if(request.status == '999'){
        	alert('인증되지 않은 사용자 혹은 세션이 만료 되었습니다.\n로그인 하여주시기 바랍니다.');	
            location.replace('/access/login.do');
		}
        //alert("code:" + request.status + "\n" + "message:" + request.responseText + "\n" + "error:" + error);
	}
});

 

java ajax 확인 

private boolean isCheckRequestAjax(HttpServletRequest req) {
	String header = req.getHeader("x-requested-with");

	if ("XMLHttpRequest".equals(header)){
		return true;
	}else{
		return false;
	}
}

 

java Ajax 확인여부

if(isAjaxRequest(request)){
	response.sendError(999);	    		 
}

response.sendError는 ajax에서 request.status값이다.

이 값을 통해서 페이지를 이동 또는 다른 event를 발생 시킬수 있다.

 

Ajax가 에러가 나도 기본적으로 request.status 값은 200이 나온다.

728x90
반응형