web-dev-qa-db-fra.com

Comment empêcher une demande jQuery Ajax de se mettre en cache dans Internet Explorer?

Comment empêcher une demande jQuery Ajax de se mettre en cache dans Internet Explorer?

266
SABU

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...
});
510
Nick Craver

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
    }});
21
Koss
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.

12
user407283

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é.

5
DRK

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

0
Fajar A. R