Maison  >  Article  >  interface Web  >  Ajax gère l'échec de la session utilisateur

Ajax gère l'échec de la session utilisateur

php中世界最好的语言
php中世界最好的语言original
2018-04-19 11:47:091871parcourir

Cette fois, je vais vous présenter la gestion Ajax de l'échec de session utilisateur. Quelles sont les précautions pour la gestion Ajax de l'échec de session utilisateur ? Voici un cas pratique, jetons un coup d'oeil.

Lors de l'utilisation de l'intercepteur spingMVC pour gérer le problème d'invalidation de la session de l'utilisateur, lorsque la session de l'utilisateur échoue, une chaîne de chaînes javascript sera renvoyée pour forcer l'utilisateur à navigateur pour accéder à la page de connexion. Cependant, lorsque Ajax est utilisé pour demander des données, seule une chaîne recevra une réponse après l'échec de la vérification et JavaScript ne sera pas exécuté. En effet, la requête Ajax est initiée par l'objet XMLHTTPRequest plutôt que par le navigateur. le serveur renvoie Les informations seront reçues par l'objet XMLHTTPRequest et enregistrées dans l'objet js.

Afin de faire face à cette situation, la requête Http peut d'abord être jugée en arrière-plan, et la requête Ajax peut être traitée séparément de la requête http ordinaire.
En observant les informations d'en-tête de requête envoyées par Ajax, vous pouvez constater que les informations d'en-tête de la requête Ajax contiendront X-Requested-With:XMLHttpRequest. Grâce à cela, vous pouvez déterminer s'il s'agit d'une requête Ajax.

String requestType = request.getHeader("X-Requested-With");
if(requestType !=null&&"XMLHttpRequest".equalsIgnoreCase(requestType.trim())) {
  //如果是ajax请求
  response.setHeader("sessionStatus","timeout");
  response.sendError(601,"session timeout.");
  returnfalse;
}

Code JavaScript, vous pouvez définir les options globales par défaut pour les requêtes Ajax, une fois pour toutes

//设置Ajax请求的全局默认options
jQuery.ajaxSetup({
  type:'post',
  complete:function(xhr, ts){//XMLHttpRequest, textStatus
    varsessionStatus = xhr.getResponseHeader('sessionstatus');
    if(sessionStatus =='timeout') {
      alert('页面过期,请重新登录!');
      window.top.location.href ='Login.htm'
    }
  }
});

DataTables est également utilisé dans le projet pour créer des tableaux de données que j'ai trouvé. qu'en utilisant la méthode de configuration javascript ci-dessus dans les tables de données, cela ne peut pas prendre effet, message d'erreur voir : http://datatables.net/tn/7 Vous devez configurer l'attribut d'erreur d'ajax

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

Lecture recommandée :

Implémentation JS de la couverture d'échiquier

Explication détaillée de l'utilisation de l'héritage combiné parasite js

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!

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