Comment empêcher une demande jQuery Ajax de se mettre en cache dans Internet Explorer?
Vous pouvez désactiver la mise en cache globalement en utilisant $.ajaxSetup()
, par exemple:
$.ajaxSetup({ cache: false });
Ceci ajoute un horodatage à la chaîne de requête lors de la requête. Pour désactiver le cache pour un appel $.ajax()
particulier, définissez cache: false
sur celui-ci localement, comme suit:
$.ajax({
cache: false,
//other options...
});
Si vous définissez des paramètres uniques, le cache ne fonctionne pas, par exemple:
$.ajax({
url : "my_url",
data : {
'uniq_param' : (new Date()).getTime(),
//other data
}});
Cache-Control: no-cache, no-store
Ces deux valeurs d'en-tête peuvent être combinées pour obtenir l'effet requis sur IE et Firefox.
Voici une proposition de réponse:
http://www.greenvilleweb.us/how-to-web-design/problem-with-ie-9-caching-ajax-get-request/
L'idée est d'ajouter un paramètre à votre requête ajax contenant par exemple la date du jour et l'heure, afin que le navigateur ne puisse pas le mettre en cache.
Jetez un coup d'oeil sur le lien, c'est bien expliqué.
vous pouvez le définir comme ceci:
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 comme ceci:
$.get({url: <?php echo json_encode(site_url('your api'))?>, cache: false})
j'espère que ça aide