开发者

How to prevent a jQuery Ajax request from caching in Internet Explorer?

开发者 https://www.devze.com 2023-01-27 15:48 出处:网络
How do I pre开发者_开发百科vent a jQuery Ajax request from caching in Internet Explorer?You can disable caching globally using $.ajaxSetup(), for example:

How do I pre开发者_开发百科vent a jQuery Ajax request from caching in Internet Explorer?


You can disable caching globally using $.ajaxSetup(), for example:

$.ajaxSetup({ cache: false });

This appends a timestamp to the querystring when making the request. To turn cache off for a particular $.ajax() call, set cache: false on it locally, like this:

$.ajax({
  cache: false,
  //other options...
});


If you set unique parameters, then the cache does not work, for example:

$.ajax({
    url : "my_url",
    data : {
        'uniq_param' : (new Date()).getTime(),
        //other data
    }});


Cache-Control: no-cache, no-store

These two header values can be combined to get the required effect on both IE and Firefox


Here is an answer proposal:

http://www.greenvilleweb.us/how-to-web-design/problem-with-ie-9-caching-ajax-get-request/

The idea is to add a parameter to your ajax query containing for example the current date an time, so the browser will not be able to cache it.

Have a look on the link, it is well explained.


you can define it like this :

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; ?>,
            }
        }

or like this :

$.get({url: <?php echo json_encode(site_url('your api'))?>, cache: false})

hope it helps


This is an old post, but if IE is giving you trouble. Change your GET requests to POST and IE will no longer cache them.

I spent way too much time figuring this out the hard way. Hope it helps.

0

精彩评论

暂无评论...
验证码 换一张
取 消