Come evitare una richiesta jQuery Ajax dalla memorizzazione nella cache in Internet Explorer?

Come impedire una richiesta Ajax jQuery dalla memorizzazione nella cache in Internet Explorer?

È ansible disabilitare la memorizzazione nella cache a livello globale utilizzando $.ajaxSetup() , ad esempio:

 $.ajaxSetup({ cache: false }); 

Questo accoda un timestamp alla querystring quando si effettua la richiesta. Per distriggersre la cache per una $.ajax() , imposta cache: false su di essa localmente, in questo modo:

 $.ajax({ cache: false, //other options... }); 

Se imposti parametri univoci, la cache non funziona, ad esempio:

 $.ajax({ url : "my_url", data : { 'uniq_param' : (new Date()).getTime(), //other data }}); 
 Cache-Control: no-cache, no-store 

Questi due valori di intestazione possono essere combinati per ottenere l’effetto richiesto su IE e Firefox

Ecco una proposta di risposta:

http://www.greenvilleweb.us/how-to-web-design/problem-with-ie-9-caching-ajax-get-request/

L’idea è di aggiungere un parametro alla query ajax contenente ad esempio la data corrente un orario, in modo che il browser non sia in grado di memorizzarlo nella cache.

Dai un’occhiata al link, è ben spiegato.

Questo è un vecchio post, ma se IE ti sta dando problemi. Cambia le tue richieste GET in POST e IE non le memorizzerà più nella cache.

Ho passato troppo tempo a comprenderlo nel modo più duro. Spero che sia d’aiuto.