Heim >Web-Frontend >js-Tutorial >Ajax neu schreiben, um Sitzungszeitlimit zu implementieren und zur Anmeldeseite zu springen (grafisches Tutorial)

Ajax neu schreiben, um Sitzungszeitlimit zu implementieren und zur Anmeldeseite zu springen (grafisches Tutorial)

亚连
亚连Original
2018-05-22 15:38:241232Durchsuche

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(&#39;lovnx&#39;) != -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

Ajax-Front-End- und Back-End-Methode zur domänenübergreifenden Anforderungsverarbeitung (grafisches Tutorial)

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!

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