In diesem Artikel wird hauptsächlich der Beispielcode zum Umschreiben von Ajax vorgestellt, um ein Sitzungszeitlimit zu implementieren, um zur Anmeldeseite zu springen.
Problem: Bei Verwendung von window.location.href zum Springen Auf der Seite muss das Backend nur einen Filter implementieren, um zur Anmeldeseite umzuleiten, wenn die Sitzung abläuft. Aber was ist mit der Verwendung von Ajax? Die Verwendung von Ajax zur Ausführung führt zu einem 302-Fehler und es ist nicht möglich, zur Seite zu springen. Nachfolgend werde ich meinen Front-End- und Back-End-Code veröffentlichen, um dieses Problem zu beheben.
1. Sitzungsfilter
import java.io.IOException; <p style="text-align: center"><img alt=""import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; <p style="text-align: center"><img alt=""public class SessionFilter implements Filter { <p style="text-align: center"><img alt="" public void doFilter(ServletRequest req, ServletResponse res, FilterChain filterChain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) req; HttpServletResponse response = (HttpServletResponse) res; <p style="text-align: center"><img alt="" String requestUri = request.getRequestURI(); <p style="text-align: center"><img alt="" if (requestUri.indexOf("/login.html") > 0 || requestUri.indexOf("/system/login") > 0) { return ; } <p style="text-align: center"><img alt="" HttpSession session = request.getSession(false); <p style="text-align: center"><img alt="" if (session == null) { // 如果是session超时,在此处做处理。 response.sendRedirect(request.getContextPath() + "/login.html"); return ; } try { filterChain.doFilter(request, response); } catch (Exception e) { e.printStackTrace(); } return ; } }
2. Konfiguration zu web.xml hinzufügen:
<filter> <filter-name>sessionFilter</filter-name> <filter-class>com.manager.filter.SessionFilter</filter-class> </filter> <filter-mapping> <filter-name>sessionFilter</filter-name> <url-pattern>/manager/*</url-pattern> </filter-mapping>
*3 , Ajax neu schreiben
Hinweis: Dieser Code wird auf der Indexseite platziert
jQuery(function($){ var _ajax=$.ajax; $.ajax=function(opt){ var _success = opt && opt.success || function(a, b){}; var _opt = $.extend(opt, { success:function(data, textStatus){ _success(data, textStatus); }, error:function(XMLHttpRequest, textStatus, errorThrown){ //alert(XMLHttpRequest.responseText); //如果请求发生错误,会返回登陆页面源代码,如果源代码里面存在lovnx这个字符串,前端就重定向到登陆页面 var reData = XMLHttpRequest.responseText + ""; if(reData.indexOf('lovnx') != -1) { window.location.href="/manager/login.html" rel="external nofollow" ; return; } } }); return _ajax(_opt); }; });
4. Fügen Sie den Code
<input type="hidden" value="lovnx">
zum Login hinzu Die obige Seite habe ich für alle zusammengestellt und hoffe, dass sie in Zukunft für alle hilfreich sein wird.
Verwandte Artikel:
Native JS implementiert Ajax-Cross-Domain-Request-Flask-Response-Inhalt (grafisches Tutorial)
Ajax implementiert Website-Hijacking-Erkennung Methode
Das obige ist der detaillierte Inhalt vonAjax neu schreiben, um Sitzungszeitlimit zu implementieren und zur Anmeldeseite zu springen (grafisches Tutorial). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!