Cet article présente principalement l'exemple de code ajax pour réécrire ajax afin d'implémenter le délai d'expiration de session et d'accéder à la page de connexion. Les amis intéressés par ajax peuvent s'y référer
Problème : utilisez window.location.href pour. sauter la page, le backend n'a besoin que d'implémenter un filtre pour rediriger vers la page de connexion lorsque la session expire. Mais qu’en est-il de l’utilisation d’Ajax ? L'utilisation d'ajax pour l'exécution entraînera une erreur 302 et il sera impossible d'accéder à la page. Ci-dessous, je publierai mon code front-end et back-end pour résoudre ce problème.
1. filtre de session
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. xml ajouter une configuration :
<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, réécrire ajax
Remarque : Ce code est placé sur la page d'index
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. Ajoutez le code à la page de connexion
<input type="hidden" value="lovnx">
Ce qui précède est un exemple de réécriture d'Ajax pour implémenter le délai d'expiration de session et accéder à la page de connexion introduite par le éditeur. Code, j'espère que cela aidera tout le monde ! !
Recommandations associées :
Explication détaillée du plug-in de téléchargement asynchrone ajax fileupload
Explication détaillée du panier d'achat de création de session Ajax et PHP exemples
Explication détaillée de la mise en œuvre simple de l'effet de pagination AJAX
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!