Maison  >  Article  >  interface Web  >  Résolvez le problème selon lequel WeChat renvoie à la page précédente et la requête AJAX dans la page n'est pas valide pour la requête Get

Résolvez le problème selon lequel WeChat renvoie à la page précédente et la requête AJAX dans la page n'est pas valide pour la requête Get

亚连
亚连original
2018-05-23 10:07:041682parcourir

Cet article présente WeChat pour revenir à la page précédente, la requête AJAX dans la page, l'analyse et la solution du problème de demande Get invalide, les amis dans le besoin peuvent s'y référer

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

Lorsque je travaillais récemment sur un projet WeChat, j'ai rencontré une situation très courante La demande est comme celle-ci. "Mon Centre personnel", il y aura un bouton sur lequel cliquer pour accéder à remplir les informations de certification. Après avoir cliqué sur ce bouton, il passera à la page de remplissage des informations de certification, remplira les informations et les soumettra 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();
}

Le contrôleur d'arrière-plan reçoit également la solution GET

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

par défaut

La pratique a prouvé Il n'est pas possible d'utiliser la méthode Get Chaque fois que vous revenez à 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 le sera pas. demandé. La valeur renvoyée par la requête est également la valeur du dernier chargement de la page. Plus précisément, la raison n'est pas claire 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, l'ensemble du processus s'est déroulé sans problème.

Le code JS front-end est le suivant :

window.onload = function(){
  var isProfesser=$(&#39;#isProfesser&#39;).val();
  var isreview=$(&#39;#isreview&#39;).val();
  var userid=$(&#39;#myId&#39;).val();
  if(isProfesser==&#39;0&#39; && isreview==&#39;0&#39;){
   $.ajax({
     url:"/isAuthenticing",
     data: {userid:userid},     type: &#39;POST&#39;,     success: function (data, textStatus, jqXHR) {
      if(data.result==&#39;1&#39;){
        $(&#39;#approveadd a&#39;).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 {
//方法体
}

J'espère que cela aidera ceux qui ont le même problème que moi.

Remarque : la partie rouge est la partie modifiée

Ce qui précède est ce que j'ai compilé pour tout le monde. J'espère que cela sera utile à tout le monde à l'avenir.

Articles connexes :

ajax utilise json pour réaliser la transmission de données

Ajax transfère un exemple de code JSON

Analyse sur le problème des erreurs dans la méthode post en Ajax renvoyant directement les nombres commençant par 0

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