Heim  >  Artikel  >  php教程  >  Die Timeout-Sprungseite für die Ajax-Übermittlungssitzung verwendet eine globale Methode zur Verarbeitung

Die Timeout-Sprungseite für die Ajax-Übermittlungssitzung verwendet eine globale Methode zur Verarbeitung

高洛峰
高洛峰Original
2017-01-07 09:33:531282Durchsuche

Schreiben Sie die folgende Methode in den Filter:

public void doFilter(ServletRequest request, ServletResponse response, 
FilterChain chain) throws IOException, ServletException { 
HttpServletRequest httprequest = (HttpServletRequest) request; 
HttpServletResponse httpresponse = (HttpServletResponse) response; 
String url = httprequest.getRequestURL().toString(); 
if (httprequest.getSession()== null) { 
if (httprequest.getHeader("x-requested-with") != null 
&& httprequest.getHeader("x-requested-with").equals( 
"XMLHttpRequest")) { // ajax请求 
httpresponse.setHeader("sessionstatus", "timeout"); 
} else { 
httpresponse.sendRedirect("/test/index.jsp"); 
return; 
} 
} else { 
chain.doFilter(request, response); 
} 
}

Wenn die Sitzung abläuft und es sich um eine Ajax-Anfrage handelt, wird im Antwortheader, sessionstatus, ein Timeout angezeigt >
Verwenden Sie dann eine globale Methode, um die Seite zu verwalten, die bei Zeitüberschreitung der Sitzung übersprungen werden soll.

jquery kann die Methode $.ajaxSetup verwenden, und ext verfügt über eine ähnliche Methode:

//全局的ajax访问,处理ajax清求时sesion超时 
$.ajaxSetup({ 
contentType : "application/x-www-form-urlencoded;charset=utf-8", 
complete : function(XMLHttpRequest, textStatus) { 
var sessionstatus = XMLHttpRequest.getResponseHeader("sessionstatus"); // 通过XMLHttpRequest取得响应头,sessionstatus, 
if (sessionstatus == "timeout") { 
// 如果超时就处理 ,指定要跳转的页面 
window.location.replace("/test/index.jsp"); 
} 
} 
});
Für weitere Ajax-Übermittlungssitzungs-Timeout-Sprungseiten verwenden Sie globale Methoden, um verwandte Artikel zu verarbeiten. Bitte zahlen Sie Achtung PHP Chinese Net!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn