Heim > Web-Frontend > js-Tutorial > Hauptteil

Ausführliche Erläuterung von Abfangbeispielen für Abfangjäger bei Ajax-Anfragen

高洛峰
Freigeben: 2017-03-28 14:39:08
Original
3751 Leute haben es durchsucht

Lösen Sie das Abfangen von Ajax-Anfragen durch den Interceptor

Interceptor-Konfiguration:

public boolean preHandle(HttpServletRequest request, HttpServletResponse response,Object obj) throws Exception {
     
    //获取判定登陆的session是否存在
    String token = (String) request.getSession().getAttribute("token");
    String postId = (String) request.getSession().getAttribute("postId");
    if(token == null || token == ""){
      String XRequested =request.getHeader("X-Requested-With");
      if("XMLHttpRequest".equals(XRequested)){
        response.getWriter().write("IsAjax");
      }else{
        response.sendRedirect("/m-web/user/toLogin");
      }
      return false;
    }
    if(postId == null || postId == ""){
      String XRequested =request.getHeader("X-Requested-With");
      if("XMLHttpRequest".equals(XRequested)){
        response.getWriter().write("IsAjax");
      }else{
        response.sendRedirect("/m-web/user/toLogin");
      }
      return false;
    }
    return true;
  }
Nach dem Login kopieren

1. Bestimmen Sie den String XRequested =request.getHeader("X-Requested-With " )-Wert, der Zweck besteht darin, festzustellen, ob es sich um eine Ajax-Anfrage handelt.

2. Response.getWriter().write("IsAjax"); Schreiben Sie Antwortdaten in Ajax, damit Sie in Ajax ein Urteil fällen können.

Es gibt zwei Möglichkeiten zur Beurteilung. Methode:

1) Urteilen Sie direkt in Ajax (nicht empfohlen)

success:function(data){
  if(data == "IsAjax"){
    window.location.href="m-web/user/toLogin"
    return;
  }
}
Nach dem Login kopieren

2) Ändern Sie den Ajax-Quellcode und komprimieren Sie ihn dann, wodurch er global geändert wird (empfohlen)

if ( isSuccess ) {// if no content
       if ( status === 204 || s.type === "HEAD" ) {
         statusText = "nocontent";
 
       // if not modified
       } else if ( status === 304 ) {
         statusText = "notmodified";
 
       // If we have data, let's convert it
       } else {
         statusText = response.state;
         success = response.data;
         error = response.error;
         isSuccess = !error;
         //解决ajax拦截问题
         var result = responses.text;
         if(result.indexOf("IsAjax")>=0){
           window.location.href="m-web/user/toLogin";
           return;
         }
       }
     }
Nach dem Login kopieren

Danke fürs Lesen, ich hoffe, es kann Ihnen helfen, vielen Dank für Ihre Unterstützung dieser Website!

Ausführlichere Beispiele für das Abfangen von Ajax-Anfragen durch Abfangjäger finden Sie auf der chinesischen PHP-Website für verwandte Artikel!

Verwandte Artikel:

Abfangen der globalen Ajax-Anforderungsinstanzanalyse durch JS

Verwenden Sie Mock.js, um AJAX in Node.js abzufangen Serverumgebung Angefordertes Tutorial

So prüfen Sie, ob es sich um eine Ajax-Anfrage über PHP handelt

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage