Maison > interface Web > js tutoriel > Utilisez ajax pour accéder à la page de connexion après l'expiration du délai de session

Utilisez ajax pour accéder à la page de connexion après l'expiration du délai de session

php中世界最好的语言
Libérer: 2018-03-31 17:13:24
original
1826 Les gens l'ont consulté

Cette fois, je vais vous apporter quelques précautions sur la façon d'utiliser ajax pour accéder à la page de connexion après l'expiration de la session, et d'utiliser ajax pour accéder à la page de connexion après l'expiration de la session. Ce qui suit est une procédure pratique. cas, jetons un coup d'oeil une fois.

Problème : lors de l'utilisation de window.location.href pour accéder à une 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 ;
 }
}
Copier après la connexion

2. Ajouter la configuration au web.xml :

<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>
Copier après la connexion

*3. Réécrivez 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);
   };
  });
Copier après la connexion

4. Ajoutez le code à la page de connexion

<input type="hidden" value="lovnx">
Copier après la connexion

Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !

Lecture recommandée :

Comment Ajax implémente la barre de progression du téléchargement de fichiers Codular

Image et données formData basées sur Ajax télécharger la mise en œuvre de la rue

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal