如何在Internet Explorer中阻止jQuery Ajax请求缓存?
答案 0 :(得分:505)
您可以使用$.ajaxSetup()
全局禁用缓存,例如:
$.ajaxSetup({ cache: false });
这会在发出请求时向查询字符串附加时间戳。要为特定$.ajax()
电话关闭缓存,请在本地设置cache: false
,如下所示:
$.ajax({
cache: false,
//other options...
});
答案 1 :(得分:21)
如果设置了唯一参数,则缓存不起作用,例如:
$.ajax({
url : "my_url",
data : {
'uniq_param' : (new Date()).getTime(),
//other data
}});
答案 2 :(得分:12)
Cache-Control: no-cache, no-store
可以组合这两个标头值以在IE和Firefox上获得所需的效果
答案 3 :(得分:5)
以下是答案提案:
http://www.greenvilleweb.us/how-to-web-design/problem-with-ie-9-caching-ajax-get-request/
我们的想法是在ajax查询中添加一个参数,例如包含当前日期的时间,因此浏览器将无法对其进行缓存。
看看链接,这是很好的解释。
答案 4 :(得分:0)
您可以这样定义它:
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})
希望有帮助
答案 5 :(得分:-3)
这是一篇旧帖子,但如果IE给你带来麻烦。将您的GET请求更改为POST,IE将不再缓存它们。
我花费了太多时间来解决这个问题。希望它有所帮助。