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!