Domanda

Codice versione di accensione '2.0.3' plug -in JQuery 1.7 cronologia jQuery

Ciao ragazzi,

Ho un'app CodeIgniter che ho costruito in modo Ajax. 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 cattura i clic sugli elementi di ancoraggio con una classe di Ajax_Link e invia la risposta a una funzione che gestisce il posizionamento di tali dati di risposta nella pagina.

Funziona in Chrome e FF. Faccio clic sul collegamento, JQuery fa la richiesta di Get, ottengo un oggetto JSON e la mia storia.PushState () inietta alcuni dei dati JSON nella mia pagina.

Il problema che ho è in IE8. Essenzialmente quello che sta succedendo è quando apro per la prima volta l'app, i collegamenti funzionano ma funzionano solo una volta. La seconda volta che faccio clic su un collegamento:

  • Fa l'Ajax GET
  • Riceve una risposta di 304 (non modificata)
  • Non chiama il jQuery.get() funzione di callback e quindi si ferma morto.

Se cancro la cache, funziona di nuovo. Quindi la mia ipotesi è che IE stia facendo la richiesta di Get, ma poi vede che ha già richiesto lo stesso file esatto in passato ... e quindi interrompe il processo del tutto.

Qualcuno sa di una soluzione a questo? Ho avuto una ricerca di 304 errori ed errori con Ajax e memorizzazione nella cache 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 in modalità in Internet Explorer 9)

Risolto

Ho solo bisogno di aggiungere il seguente codice al mio documento. La funzione di prua e il problema è scomparso.

$.ajaxSetup ({cache: false});

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top