Como impedir que uma solicitação do jQuery Ajax seja armazenada em cache no Internet Explorer?
Como impedir que uma solicitação do jQuery Ajax seja armazenada em cache no Internet Explorer?
Respostas:
Você pode desativar o cache globalmente usando $.ajaxSetup()
, por exemplo:
$.ajaxSetup({ cache: false });
Isso anexa um carimbo de data / hora à string de consulta ao fazer a solicitação. Para desativar o cache para uma $.ajax()
chamada específica , defina cache: false
-o localmente, assim:
$.ajax({
cache: false,
//other options...
});
cache: false
só funcionará corretamente com solicitações HEAD e GET. Além disso, se você definir cache: false
em $.ajaxSetup
, de acordo com jQuery.ajaxSetup documentação () , ele irá "valores padrão definidos para futuras solicitações Ajax." Portanto, sim, ele desativará o cache para todas as solicitações futuras HEAD e GET AJAX.
cache: false
. Desativar o cache globalmente parece um exagero, mas ter controle por solicitação é perfeito. Obrigado
Se você definir parâmetros exclusivos, o cache não funcionará, por exemplo:
$.ajax({
url : "my_url",
data : {
'uniq_param' : (new Date()).getTime(),
//other data
}});
cache
parâmetro já faz nos bastidores.
Cache-Control: no-cache, no-store
Esses dois valores de cabeçalho podem ser combinados para obter o efeito necessário no IE e no Firefox
Aqui está uma proposta de resposta:
http://www.greenvilleweb.us/how-to-web-design/problem-with-ie-9-caching-ajax-get-request/
A idéia é adicionar um parâmetro à sua consulta ajax que contenha, por exemplo, a data e a hora atuais, para que o navegador não possa armazená-lo em cache.
Dê uma olhada no link, está bem explicado.
cache
parâmetro já faz nos bastidores.
você pode defini-lo assim:
let table = $('.datatable-sales').DataTable({
processing: true,
responsive: true,
serverSide: true,
ajax: {
url: "<?php echo site_url("your url"); ?>",
cache: false,
type: "POST",
data: {
<?php echo your api; ?>,
}
}
ou assim :
$.get({url: <?php echo json_encode(site_url('your api'))?>, cache: false})
espero que ajude
Este é um post antigo, mas se o IE estiver causando problemas. Altere suas solicitações GET para POST e o IE não armazenará mais em cache.
Passei muito tempo descobrindo isso da maneira mais difícil. Espero que ajude.
cache:false
caso a caso são o caminho a percorrer.