Comment empêcher la mise en cache d'une requête Ajax jQuery dans Internet Explorer?
Comment puis-je empêcher la mise en cache d'une requête Ajax jQuery dans Internet Explorer?
5 réponses
vous pouvez désactiver la mise en cache à l'échelle mondiale en utilisant $.ajaxSetup()
, par exemple:
$.ajaxSetup({ cache: false });
ceci ajoute un timestamp au querystring lors de la présentation de la requête. Pour désactiver le cache pour un appel particulier $.ajax()
, mettez cache: false
localement, comme ceci:
$.ajax({
cache: false,
//other options...
});
si vous définissez des paramètres uniques, alors le cache ne fonctionne pas, par exemple:
$.ajax({
url : "my_url",
data : {
'uniq_param' : (new Date()).getTime(),
//other data
}});
Cache-Control: no-cache, no-store
ces deux valeurs d'en-tête peuvent être combinées pour obtenir l'effet requis sur IE et Firefox ""
Voici une proposition de réponse:
http://www.greenvilleweb.us/how-to-web-design/problem-with-ie-9-caching-ajax-get-request /
l'idée est d'ajouter un paramètre à votre requête ajax contenant par exemple la date courante une heure, de sorte que le navigateur ne sera pas en mesure de le mettre en cache.
Avoir un coup d'oeil sur le lien, c'est bien expliqué.
C'est un vieux post, mais si IE problème. Changez vos requêtes GET en POST et IE ne les mettra plus en cache.
j'ai passé trop de temps à comprendre ça à la dure. Espérons que cela aide.