2010-05-06 182 views

回答

22

cache应该是一个布尔值,而不是字符串:

$.ajax({type: "GET", 
    url: "/" + filename, 
    dataType: "xml", 
    cache: false, 
    success: function(xml){ 
    /* Parsing code here */ 
    } 
}); 
+2

+1如果不使用'==='进行比较,则字符串'“false”将被解释为“真”。 – 2010-05-06 15:42:29

+4

@Pekka - 这不过是真实的,但在这种特殊情况下,[jQuery不会与===比较(http://github.com/jquery/jquery/blob/master/src/ajax.js#L261),它只有尝试避免缓存,如果's.cache === false'(但当然,“false”=== false => false) – Matt 2010-05-06 15:50:12

+0

@Matt啊!接得好。 – 2010-05-06 16:06:45

0

也许是你正在返回的XML文件的媒体类型?在我的博客 http://www.nerdydork.com/ie-json-caching-bug.html

一位评论者建议增加一个时间字符串的JSON请求:

我不打算在.ajaxSetup设置 缓存为关闭信任......。

因此,只需在每个json请求的末尾 处添加一个时间字符串,例如, $('/ url /',{data:123,t: (new Date())。getTime()}, function(data){// do whatever});

+0

'我不打算在.ajaxSetup设置缓存为关闭信任...' - 为什么???它确实是完全相同的东西! – WoIIe 2014-02-12 10:22:02

+0

时间把戏做到了,谢谢! – Robert 2014-07-11 08:02:57