codeigniter versione '2.0.3' Jquery 1,7 Jquery di storia del pluginJquery.get() non funziona in IE8/9. non caricare le pagine nella cache 304 non modificati
Ciao ragazzi,
Ho un app CodeIgniter che ho costruito in un Ajax moda. Ho una funzione come segue:
$(document).on('click','.ajax_link',function(e){
//Stop the normal href action
e.preventDefault();
//Grab the destination URL
var new_url = $(this).attr('href')
//Grab the content via ajax and pass it to the history change function
$.get(base_url+new_url,function(data){
History.pushState({
content:data.content,
url:data.url
}, data.title, data.url);
//Refresh some site variables
refresh();
},'json');
});
Tutto ciò che fa cattura clic su elementi di ancoraggio con una classe di ajax_link e invia la risposta a una funzione che gestisce il posizionamento dei dati di risposta che nella pagina.
Questo funziona in Chrome e FF. Clicco sul link, jQuery fa la richiesta get, torno un oggetto JSON e la mia funzione history.pushState() inserisce alcuni dei dati json nella mia pagina.
Il problema che ho è in IE8. Essenzialmente ciò che accade è quando apro l'app per la prima volta, i collegamenti funzionano ma funzionano una sola volta. La seconda volta ho clic su un collegamento che:
- Fa l'ajax
GET
- riceve una risposta di 304 (Not Modified)
- non chiama la funzione di callback
jQuery.get()
e si ferma quindi morti.
Se svuoto la cache funziona di nuovo. Quindi la mia ipotesi è che IE stia facendo la richiesta get, ma poi vede che è già stato richiesto esattamente lo stesso file nel passato ... e quindi interrompe completamente il processo.
Qualcuno sa di una soluzione a questo? Ho dato un'occhiata a menzioni di 304 errori ed errori con ajax e caching in IE ma non ho ancora trovato un problema identico al mio.
Qualsiasi aiuto molto apprezzato
(testato su Windows Virtual Machine IE8 e IE 8 Modalità di Internet Explorer 9)
Risolto
solo bisogno di aggiungere il seguente codice al mio documento funzione .ready e il problema è scomparso.
$.ajaxSetup ({cache: false});
Grazie per la tua risposta, mi dispiace, mi ci è voluto così tanto tempo per accettarlo. Questa era davvero la soluzione di cui avevo bisogno. –
vedere anche: http://stackoverflow.com/questions/1013637/unexpected-caching-of-ajax-results-in-ie8 – Costa