IE不显示最新数据

时间:2015-06-19 08:02:30

标签: javascript angularjs

我使用AngularJS从服务器获取数据。如果服务器中的数据发生变化,它在chrome和firefox中运行良好。但在IE中,它没有显示最新的数据。我认为因为IE将数据保存在缓存中所以我向服务器发送请求以获取新数据,但IE仍显示旧数据。 如何解决这个bug。

2 个答案:

答案 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
});