如何防止在Internet Explorer中缓存jQuery Ajax请求?
你可以使用$.ajaxSetup()禁用全局缓存,例如:
$.ajaxSetup()
$.ajaxSetup({ cache: false });
这将在发出请求时向查询字符串追加时间戳。要关闭特定$.ajax()调用的缓存,在本地设置cache: false,如下所示:
$.ajax()
cache: false
$.ajax({ cache: false, //other options... });
Cache-Control: no-cache, no-store
这两个头值可以在IE和Firefox上组合以获得所需的效果
如果你设置了唯一的参数,那么缓存不工作,例如:
$.ajax({ url : "my_url", data : { 'uniq_param' : (new Date()).getTime(), //other data }});
以下是一个回答建议:
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})
希望能有所帮助