Wie verhindere ich, dass eine jQuery Ajax-Anforderung in Internet Explorer zwischengespeichert wird?
275
Wie verhindere ich, dass eine jQuery Ajax-Anforderung in Internet Explorer zwischengespeichert wird?
Antworten:
Sie können das Caching global deaktivieren, indem Sie
$.ajaxSetup()
beispielsweise Folgendes verwenden :Dies hängt einen Zeitstempel an den Querystring an, wenn die Anforderung gestellt wird. Um den Cache für einen bestimmten
$.ajax()
Anruf zu deaktivieren, legencache: false
Sie ihn wie folgt lokal fest:quelle
cache: false
wird nur korrekt mit HEAD arbeiten und GET - Anfragen. Auch, wenn Sie setzencache: false
in$.ajaxSetup
, nach jQuery.ajaxSetup () Dokumentation , wird es „Standardwerte für die zukünftige Ajax - Anfragen.“ Ja, der Cache wird für alle zukünftigen HEAD- und GET AJAX-Anforderungen deaktiviert.cache: false
. Das globale Deaktivieren des Caching scheint übertrieben, aber die Kontrolle pro Anforderung ist perfekt. DankeWenn Sie eindeutige Parameter festlegen, funktioniert der Cache nicht. Beispiel:
quelle
cache
Parameter bereits hinter den Kulissen.Diese beiden Header-Werte können kombiniert werden, um die erforderlichen Auswirkungen auf IE und Firefox zu erzielen
quelle
Hier ist ein Antwortvorschlag:
http://www.greenvilleweb.us/how-to-web-design/problem-with-ie-9-caching-ajax-get-request/
Die Idee ist, Ihrer Ajax-Abfrage einen Parameter hinzuzufügen, der beispielsweise das aktuelle Datum und die Uhrzeit enthält, damit der Browser ihn nicht zwischenspeichern kann.
Schauen Sie sich den Link an, er ist gut erklärt.
quelle
cache
Parameter bereits hinter den Kulissen.Sie können es so definieren:
oder so:
ich hoffe es hilft
quelle
Dies ist ein alter Beitrag, aber wenn der IE Ihnen Probleme bereitet. Wenn Sie Ihre GET-Anforderungen in POST ändern, werden sie vom IE nicht mehr zwischengespeichert.
Ich habe viel zu viel Zeit damit verbracht, dies auf die harte Tour herauszufinden. Ich hoffe es hilft.
quelle
cache:false
von Fall zu Fall sind der richtige Weg.