Ich habe heute Tests durchgeführt und ein Problem festgestellt, das mich verwirrte. Die getJson-Methode von jquery kann das zurückgegebene Ergebnis erhalten, wenn sie unter Firefox ausgeführt wird, aber beim Testen auf ie8 habe ich das festgestellt Es wurde keine Anfrage gesendet, daher konnte ich keine Ergebnisse zurückgeben. Nachdem ich viele Wendungen durchgegangen war, habe ich die Lösung in einem Online-Artikel gefunden, also einen Auszug daraus gemacht und einige Änderungen vorgenommen.
1 Machen Sie die URL für jeden Anruf unterschiedlich
Methode: Fügen Sie eins zum Parameter Zufallszahl hinzu .
Beispiel 1:
jQuery.getJSON("$!{Root}/a/a/s.ashx",{ID:"123456",Name: "john",random:Math.random()},function(responseText){}
Beispiel 2:
"xxx.aspx?randID="+Math .random
Beispiel 3:
"xxx.aspx?randID="+ escape(new Date())
2 will Cache ist auf False gesetzt
$.ajax führt keinenCacheVersion:
$.ajax({ type:"GET" url:'test.html' , cache:false, dataType:"html", success:function(msg){ alert(msg); } });
3. Fügen Sie die folgende Anweisung oben in der Datei labels.html hinzu:
4.load function kann nicht nur HTML aufrufen, sondern auch Skripte wie labels.php aufrufen, Sie können die Header-Funktion verwenden in der PHP-Datei :
header("Cache-Control: no-cache, muss erneut validiert werden);
?>
5 Post anstelle der get-Methode verwenden.
Post-Methode verwenden erfordert Hinweis:
Setzen Sie den Kontexttyp des Headers auf application/x-www-form-urlencode, um sicherzustellen, dass der Server weiß, dass es Parameter in der Entität Variablen gibt Verwenden Sie das XmlHttpRequestObjektSetRequestHeader("Context-Type","application/x-www-
form-urlencoded;").
Beispiel: xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
Parameter sind Schlüssel-Wert-Paare mit einer Eins-zu-Eins-Name/Wert-Entsprechung. Jedes Wertepaar wird durch ein kaufmännisches Und getrennt. Beispiel: var name=abc&sex=man&age =18, achten Sie auf var name=update.abc&sex=man&age=18 und var name=?abc&sex=man&age=18 sind beide falsch geschrieben; > Parameter befinden sich in der Send-Methode (Parameter), zum Beispiel: xmlHttp.send(name); Wenn es sich um die get-Methode handelt, direkt Serverseite
Parameter anfordernWenn es sich um die Get-Methode handelt, unterscheiden Sie zwischen Get und Post. Wenn es sich um den Post-Modus handelt, dann $username = $_POST["username"]; 6 Header hinzufügen („Cache-Kontrolle: kein Cache, muss erneut validiert werden“);
7 Vor dem Senden einer Ajax-Anfrage hinzufügen xmlHttpRequest.setRequestHeader("If-Modified-Since","0");8 Fügen Sie hinzu, bevor Ajax die Anfrage sendet
xmlHttpRequest.setRequestHeader("Cache-Control","no-cache");
Das obige ist der detaillierte Inhalt vonMehrere Methoden zur Lösung des Caching-Problems von jQuery.getJSON. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!