Maison  >  Article  >  interface Web  >  Explication détaillée des exemples d'interception d'intercepteurs sur les requêtes ajax

Explication détaillée des exemples d'interception d'intercepteurs sur les requêtes ajax

高洛峰
高洛峰original
2017-03-28 14:39:083729parcourir

Résoudre l'interception des requêtes ajax par l'intercepteur

Configuration de l'intercepteur :

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;
  }

1. Déterminer la chaîne XRequested =request.getHeader("X-Requested-With " ), le but est de déterminer s'il s'agit d'une requête ajax.

2. Response.getWriter().write("IsAjax"); Écrivez des données de réponse en ajax, afin que vous puissiez porter un jugement en ajax

Il existe deux façons de juger. Méthode :

1) Faire un jugement directement en ajax (non recommandé)

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

2) Changer le code source ajax puis le compresser, qui est modifié de manière globale (recommandé)

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;
         }
       }
     }

Merci d'avoir lu, j'espère que cela pourra vous aider, merci pour votre soutien à ce site !

Pour des exemples plus détaillés d'interception de requêtes ajax par des intercepteurs, veuillez faire attention au site Web PHP chinois pour les articles connexes !

Articles connexes :

Interception de l'analyse globale des instances de requêtes ajax via JS

Utilisez Mock.js pour intercepter AJAX dans Node.js environnement serveur Tutoriel demandé

Comment vérifier s'il s'agit d'une requête ajax via php

Déclaration:
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