Maison  >  Article  >  interface Web  >  La demande AJAX Get n'est pas valide lors du retour à la page précédente dans WeChat

La demande AJAX Get n'est pas valide lors du retour à la page précédente dans WeChat

php中世界最好的语言
php中世界最好的语言original
2018-04-02 16:51:321226parcourir

Cette fois, je vais vous apporter la demande AJAX Get qui n'est pas valide dans WeChat retourner à la page précédente, et résoudre le problème selon lequel la demande AJAX Get n'est pas valide dans WeChat, retourner à la page précédenteNotes De quoi s’agit-il ? Voici des cas réels.

Permettez-moi d'abord d'analyser la cause du problème

Récemment, alors que je travaillais sur un projet WeChat, j'ai rencontré une situation très courante, l'exigence C'est comme ça. Lorsque l'utilisateur entre dans « Mon centre personnel », il y aura un bouton qui clique pour sauter pour remplir les informations de certification. Après avoir cliqué sur ce bouton, il passera à la page de remplissage. les informations de certification. Remplissez le champ Une fois les informations soumises avec succès. Lorsque l'utilisateur revient directement à la page précédente. Le statut d'authentification doit être modifié en « Authentification ». À ce stade, vous devez utiliser une méthode AJAX pour interroger l'état d'authentification et modifier l'affichage de l'état sur la page.

À cette époque, la méthode ajax n'était pas écrite selon la méthode standard. La méthode par défaut était Get request. Le code JS front-end est le suivant :

window.onload = function(){
  var isProfesser=$('#isProfesser').val();
  var isreview=$('#isreview').val();
  var userid=$('#myId').val();
  if(isProfesser=='0' && isreview=='0'){
   $.ajax({
     url:"/isAuthenticing",
     data: {userid:userid},
     success: function (data, textStatus, jqXHR) {
      if(data.result=='1'){
        $('#approveadd a').html("+认证中")
      }
     },
     error: function () {
     }
   });
  }
  //getMyQusetionInfo();
}

L'arrière-plan. le contrôleur a également reçu GET par défaut

@RequestMapping(value = "/isAuthenticing", method = RequestMethod.GET)
@ResponseBody
public Map<String, Object> isAuthenticing(@RequestParam("userid") String userid,HttpServletRequest request) throws IOException {
//方法体;
}

Solution

La pratique a prouvé qu'il n'est pas possible d'utiliser la méthode Get à chaque fois. de retour à la page précédente, la méthode ajax dans la page sera exécutée comme d'habitude, mais le contrôleur d'arrière-plan ne sera pas demandé. La valeur renvoyée par la requête est également la valeur du dernier chargement de la page. pas clair pour moi pour le moment.

Plus tard, avec la mentalité de faire un essai, j'ai utilisé la requête POST. Étonnamment, en utilisant la requête POST, tout le processus s'est déroulé sans problème.

Le code JS front-end est le suivant :

window.onload = function(){
  var isProfesser=$('#isProfesser').val();
  var isreview=$('#isreview').val();
  var userid=$('#myId').val();
  if(isProfesser=='0' && isreview=='0'){
   $.ajax({
     url:"/isAuthenticing",
     data: {userid:userid},     type: 'POST',     success: function (data, textStatus, jqXHR) {
      if(data.result=='1'){
        $('#approveadd a').html("+认证中")
      }
     },
     error: function () {
     }
   });
  }
  //getMyQusetionInfo();
}

Code back-end :

@RequestMapping(value = "/isAuthenticing", method = RequestMethod.POST)
@ResponseBody
public Map<String, Object> isAuthenticing(@RequestParam("userid") String userid,HttpServletRequest request) throws IOException {
//方法体
}

Je crois que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des choses plus excitantes, veuillez prêter attention à php Chinois Autres articles connexes en ligne !

Lecture recommandée :

Téléchargement asynchrone de fichiers ou d'images ajax

AJAX interagit avec la base de données pour déterminer si l'utilisateur est inscrit

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