如何防止在Internet Explorer中缓存jQuery Ajax请求?


当前回答

以下是一个回答建议:

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

这个想法是在ajax查询中添加一个参数,例如包含当前日期和时间,这样浏览器就不能缓存它。

看一下链接,解释得很清楚。

其他回答

这是一个老帖子,但如果IE给你带来麻烦。将GET请求更改为POST, IE将不再缓存它们。

我花了太长时间才明白这是怎么回事。希望能有所帮助。

你可以这样定义它:

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

或者像这样:

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

希望能有所帮助

以下是一个回答建议:

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

这个想法是在ajax查询中添加一个参数,例如包含当前日期和时间,这样浏览器就不能缓存它。

看一下链接,解释得很清楚。

如果你设置了唯一的参数,那么缓存不工作,例如:

$.ajax({
    url : "my_url",
    data : {
        'uniq_param' : (new Date()).getTime(),
        //other data
    }});
Cache-Control: no-cache, no-store

这两个头值可以在IE和Firefox上组合以获得所需的效果