Heim >Backend-Entwicklung >PHP-Tutorial >AJAX-Anfrage, die das Problem einer ungültigen Get-Anfrage löst
In diesem Artikel wird hauptsächlich WeChat vorgestellt, 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, ich hoffe, es kann allen helfen.
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 Zentrum“ wird eine Schaltfläche angezeigt, auf die Sie klicken können, um zum Ausfüllen der Zertifizierungsinformationen zu springen. Nachdem Sie auf diese Schaltfläche geklickt haben, wird zur Seite zum Ausfüllen der Zertifizierungsinformationen gesprungen, die Informationen eingegeben und erfolgreich übermittelt. 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 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}, success: function (data, textStatus, jqXHR) { if(data.result=='1'){ $('#approveadd a').html("+认证中") } }, error: function () { } }); } //getMyQusetionInfo(); }
Der Hintergrund Der Controller hat standardmäßig auch GET empfangen
@RequestMapping(value = "/isAuthenticing", method = RequestMethod.GET) @ResponseBody public Map<String, Object> isAuthenticing(@RequestParam("userid") String userid,HttpServletRequest request) throws IOException { //方法体; }
Lösung
Die Praxis hat gezeigt, dass die Verwendung der Get-Methode nicht möglich ist. Jedes Mal, wenn Sie zur vorherigen Seite zurückkehren, wird die Ajax-Methode auf der Seite verwendet wird wie gewohnt ausgeführt, aber der von der Anfrage zurückgegebene Wert ist auch der Wert, als die Seite zuletzt geladen wurde. Der genaue Grund ist mir derzeit nicht klar.
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, er kann denen helfen, die auf das gleiche Problem stoßen wie Mich.
Hinweis: Der rote Teil ist der geänderte Teil
Verwandte Empfehlungen:
Beispiel für die gemeinsame Nutzung des Schreibens einer Ajax-Anfragefunktion in nativem JS
Probleme mit speziellen Symbolen in Get-Anfragen
Detaillierte Beschreibung der WeChat-Applet-Netzwerkanfrage (GET-Anfrage)
Das obige ist der detaillierte Inhalt vonAJAX-Anfrage, die das Problem einer ungültigen Get-Anfrage löst. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!