我使用AngularJS从服务器获取数据。如果服务器中的数据发生变化,它在chrome和firefox中运行良好。但在IE中,它没有显示最新的数据。我认为因为IE将数据保存在缓存中所以我向服务器发送请求以获取新数据,但IE仍显示旧数据。 如何解决这个bug。
答案 0 :(得分:1)
尝试使用此功能:https://github.com/saintmac/angular-cache-buster
它会向?timestamp=123456789
之类的请求添加查询字符串,以禁止IE缓存它。
基本上,如果您不想使用它,您只需要为每次请求的网址添加不同的查询字符串。这可以防止IE缓存请求。
答案 1 :(得分:0)
IE缓存该调用,如果您要发送相同的调用,则IE将返回缓存的数据。
如果您使用$ http进行通话,则只需在配置功能中添加以下代码
即可$httpProvider.defaults.headers.common['Cache-Control'] = 'no-cache, no-store, must-revalidate';
$httpProvider.defaults.headers.common['Pragma'] = 'no-cache';
$httpProvider.defaults.headers.common["If-Modified-Since"] = "0";
但是,如果您使用的是jQuery甚至是$ http(另一种解决方案),请在调用中添加时间戳以及现有参数。
jQuery.ajax({
url: "your_url",
data: {
param1 : value1 ,
timestamp : new Date().getTime()
},
success: successCallbackFn
});