springmvc Interceptor ajax 차단 요청 성공 후 페이지 로 돌아 가기
질문: Interceptor 가 ajax 요청 을 차단 하면 false 로 돌아 갑 니 다. 그러나 ajax 에 필요 한 것 은 되 돌아 오 는 데이터 이기 때문에 이 때 차단 기 는 false 를 되 돌려 줍 니 다. 그러나 이것 은 ajax 가 요청 한 데이터 가 아니 기 때문에 해당 하 는 처 리 를 하지 않 았 습 니 다.
해결 방법: Interceptor 차단 후 지정 한 리 셋 요청 헤더 정 보 를 되 돌려 줍 니 다.
또한 ajax 에 complete 함 수 를 설정 하여 요청 이 완료 되면 이 함 수 를 자동 으로 실행 하여 요청 헤더 정보 가 있 는 지 여 부 를 판단 합 니 다.
존재 한다 면 다른 페이지 로 다시 설정 합 니 다.
springmvc interceptor 설정
코드:
//
public class ExecuteIntercept implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
// if(request.getSession().getAttribute("LOG_IN_FLAG")==null){
// ajax
if ("XMLHttpRequest".equals(request.getHeader("X-Requested-With"))) {
// ajax
response.setHeader("REDIRECT", "REDIRECT");
// ajax
response.setHeader("CONTENTPATH", "error.jsp");
response.setStatus(HttpServletResponse.SC_FORBIDDEN);
return false;
} else {
// ajax
response.setContentType("text/html; charset=UTF-8");
response.getWriter().print("alert(' , , !'); ");
response.getWriter().close();
response.flushBuffer();
}
return true;
}
}
document.getElementById("submit").onclick=function(){
document.getElementById("msg").innerHTML="";
var name = document.getElementById("name").value;
var password = document.getElementById("password").value;
if(name==""){
alert(" 。");
return ;
}
if(password==""){
alert(" 。");
return ;
}
document.getElementById("submitDisImg").src="img/wait.gif";
$.ajax({
url:"user/equale", //
contentType:"application/json;charset=UTF-8", //
data:JSON.stringify({name:name,password: password}), //
dataType:"json", //
type:"post", //
success:function(msg){ //data
if (msg=="success") {//
window.location.href = 'index.jsp';
}else{
document.getElementById("submitDisImg").src="";
document.getElementById("msg").innerHTML=" ";
}
},
complete : function(xhr, status) {
//
// xhr
var REDIRECT = xhr.getResponseHeader("REDIRECT");
// REDIRECT
if (REDIRECT == "REDIRECT"){
// login.html
window.location.href = xhr.getResponseHeader("CONTENTPATH");
//window.location.href = "error.jsp";
}
}
});
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
springmvc application/octet-stream problemmistake: Source code: Solution: Summarize: application/octet-stream is the original binary stream method. If the convers...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.