Dieser Artikel stellt WeChat vor, um zur vorherigen Seite zurückzukehren, die AJAX-Anfrage auf der Seite, die Analyse und Lösung des Problems ungültiger Get-Anfragen, Freunde in Not können darauf verweisen
Lassen Sie mich zunächst die Ursache des Problems analysieren
Als ich kürzlich an einem WeChat-Projekt arbeitete, stieß ich auf eine sehr häufige Situation „Mein persönliches Center“, es gibt eine Schaltfläche, auf die Sie klicken können, um die Zertifizierungsinformationen einzugeben. Nachdem Sie auf diese Schaltfläche geklickt haben, gelangen Sie zur Seite zum Ausfüllen der Zertifizierungsinformationen, geben die Informationen ein und senden sie erfolgreich. Wenn der Benutzer direkt zur vorherigen Seite zurückkehrt. Der Authentifizierungsstatus muss auf „Authentifizierung wird ausgeführt“ geändert werden. Zu diesem Zeitpunkt müssen Sie eine AJAX-Methode verwenden, um den Authentifizierungsstatus abzufragen und die Statusanzeige auf der Seite zu ändern.
Zu diesem Zeitpunkt wurde die Ajax-Methode nicht gemäß der Standardmethode geschrieben. Der Front-End-JS-Code lautete wie folgt:
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(); }
Backend-Controller Der Standardwert ist auch GET
@RequestMapping(value = "/isAuthenticing", method = RequestMethod.GET) @ResponseBody public Map<String, Object> isAuthenticing(@RequestParam("userid") String userid,HttpServletRequest request) throws IOException { //方法体; }
Solution
Die Verwendung der Get-Methode hat sich bewährt. Jedes Mal, wenn Sie zur vorherigen Seite zurückkehren, wird die Ajax-Methode auf der Seite wie gewohnt ausgeführt, der Hintergrundcontroller wird jedoch nicht angefordert Der von der Anfrage zurückgegebene Wert ist auch der Wert, als die Seite zuletzt geladen wurde. Den genauen Grund kenne ich derzeit nicht.
Später habe ich mit der Mentalität, es auszuprobieren, die POST-Anfrage verwendet. Überraschenderweise verlief der gesamte Prozess reibungslos.
Der Front-End-JS-Code lautet wie folgt:
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(); }
Back-End-Code:
@RequestMapping(value = "/isAuthenticing", method = RequestMethod.POST) @ResponseBody public Map<String, Object> isAuthenticing(@RequestParam("userid") String userid,HttpServletRequest request) throws IOException { //方法体 }
Ich hoffe, es hilft denen, die das gleiche Problem haben wie ich.
Hinweis: Der rote Teil ist der geänderte Teil
Das Obige habe ich für Sie zusammengestellt. Ich hoffe, es wird Ihnen in Zukunft hilfreich sein.
Verwandte Artikel:
Ajax verwendet JSON, um die Datenübertragung zu realisieren
Ajax überträgt JSON-Beispielcode
Das obige ist der detaillierte Inhalt vonLösen Sie das Problem, dass WeChat zur vorherigen Seite zurückkehrt und die AJAX-Anfrage auf der Seite für die Get-Anfrage ungültig ist. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!