¿Cómo evito que una solicitud jQuery Ajax se almacene en caché en Internet Explorer?
¿Cómo evito que una solicitud jQuery Ajax se almacene en caché en Internet Explorer?
Respuestas:
Puede deshabilitar el almacenamiento en caché globalmente $.ajaxSetup()
, por ejemplo:
$.ajaxSetup({ cache: false });
Esto agrega una marca de tiempo a la cadena de consulta al realizar la solicitud. Para desactivar el caché para una $.ajax()
llamada en particular , configúrelo cache: false
localmente, así:
$.ajax({
cache: false,
//other options...
});
cache: false
solo funcionará correctamente con las solicitudes HEAD y GET. Además, si se establece cache: false
en $.ajaxSetup
, según jQuery.ajaxSetup documentación () , lo hará "valores predeterminados para futuras peticiones Ajax". Entonces sí, deshabilitará el caché para todas las futuras solicitudes HEAD y GET AJAX.
cache: false
. Desactivar el almacenamiento en caché a nivel mundial parece excesivo, pero tener control por solicitud es perfecto. Gracias
Si establece parámetros únicos, entonces el caché no funciona, por ejemplo:
$.ajax({
url : "my_url",
data : {
'uniq_param' : (new Date()).getTime(),
//other data
}});
cache
parámetro ya hace detrás de escena.
Cache-Control: no-cache, no-store
Estos dos valores de encabezado se pueden combinar para obtener el efecto requerido en IE y Firefox
Aquí hay una propuesta de respuesta:
http://www.greenvilleweb.us/how-to-web-design/problem-with-ie-9-caching-ajax-get-request/
La idea es agregar un parámetro a su consulta ajax que contenga, por ejemplo, la fecha actual una hora, para que el navegador no pueda almacenarlo en caché.
Echa un vistazo al enlace, está bien explicado.
cache
parámetro ya hace detrás de escena.
puedes definirlo así:
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; ?>,
}
}
o así :
$.get({url: <?php echo json_encode(site_url('your api'))?>, cache: false})
Espero eso ayude
Esta es una publicación antigua, pero si IE te está dando problemas. Cambie sus solicitudes GET a POST e IE ya no las almacenará en caché.
Pasé demasiado tiempo resolviendo esto de la manera difícil. Espero eso ayude.
cache:false
caso por caso es el camino a seguir.