我有以下代码的jQuery在IE缓存AJAX请求,即使缓存:“假”设置
$.ajax({type: "GET",
url: "/" + filename,
dataType: "xml",
cache: "false",
success: function(xml)
{
/* Parsing code here */
}});
在Chrome浏览器等方面的要求没有被高速缓存,但是他们在IE浏览器。我是否正确构建了我的请求?
我有以下代码的jQuery在IE缓存AJAX请求,即使缓存:“假”设置
$.ajax({type: "GET",
url: "/" + filename,
dataType: "xml",
cache: "false",
success: function(xml)
{
/* Parsing code here */
}});
在Chrome浏览器等方面的要求没有被高速缓存,但是他们在IE浏览器。我是否正确构建了我的请求?
cache
应该是一个布尔值,而不是字符串:
$.ajax({type: "GET",
url: "/" + filename,
dataType: "xml",
cache: false,
success: function(xml){
/* Parsing code here */
}
});
也许是你正在返回的XML文件的媒体类型?在我的博客 http://www.nerdydork.com/ie-json-caching-bug.html
一位评论者建议增加一个时间字符串的JSON请求:
我不打算在.ajaxSetup设置 缓存为关闭信任......。
因此,只需在每个json请求的末尾 处添加一个时间字符串,例如, $('/ url /',{data:123,t: (new Date())。getTime()}, function(data){// do whatever});
+1如果不使用'==='进行比较,则字符串'“false”将被解释为“真”。 – 2010-05-06 15:42:29
@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
@Matt啊!接得好。 – 2010-05-06 16:06:45