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?

247
demandé sur Teun Zengerink 2010-11-29 15:47:18

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...
});
486
répondu Nick Craver 2010-11-29 12:50:39

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
    }});
21
répondu Koss 2012-10-13 17:39:07
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 ""

11
répondu Zoltan Toth 2012-08-31 14:49:22

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é.

5
répondu DRK 2013-01-18 08:37:08

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.

-3
répondu Some_Guy 2015-05-12 18:41:34