Jquery.get () não funciona no IE8 / 9. Não carrega páginas em cache 304 não modificadas
Code Igniter versão '2.0.3' Jquery 1.7 Plug-in Histórico do Jquery
Oi pessoal
Eu tenho um aplicativo CodeIgniter que eu criei de maneira ajax. Eu tenho uma função da seguinte maneira:
$(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');
});
Tudo o que faz captura os cliques nos elementos âncora com uma classe de ajax_link e envia a resposta a uma função que lida com a colocação desses dados de resposta na págin
Isso funciona no Chrome e no FF. Clico no link, o jQuery faz a solicitação get, recupero um objeto JSON e minha função history.pushState () injeta alguns dos dados json na minha página.
O problema que tenho está no IE8. Basicamente, o que está acontecendo é que, quando eu abro o aplicativo, os links funcionam, mas eles funcionam apenas uma vez. Na segunda vez em que clico em um link:
Faz o ajaxGET
Recebe uma resposta 304 (Não modificado) Não chama ojQuery.get()
unção de retorno de chamada e, portanto, para de inoperantSe eu limpar o cache, ele funcionará novamente. Portanto, suponho que o IE esteja fazendo a solicitação get, mas depois vê que já foi solicitado exatamente o mesmo arquivo no passado ... e, portanto, interrompe o processo completament
Alguém sabe de uma solução para isso? Eu procurei por menções de 304 erros e erros com ajax e cache no IE, mas ainda não encontrei um problema idêntico ao me
Qualquer ajuda muito apreciada
(Testado no modo Windows Virtual Machine IE8 e IE 8 no Internet Explorer 9)
Resolvido
Apenas era necessário adicionar o seguinte código à função document.ready e o problema desaparece
$.ajaxSetup ({cache: false});