我很确定这是Chrome中的一个错误,因为它在IE 10中没有发生并且它刚刚开始,但基本上是在对URL进行AJAX调用并且用户在请求期间刷新浏览器时,所有在此之后,对同一网址的请求将失败。即使我再次刷新浏览器,请求也会失败。我可以解决它的唯一方法是添加一个时间戳,使每个请求都是唯一的,但这似乎是一个黑客。我在这里错过了什么吗?
如果您有中止请求,这将永远不会再有效:
$.getJSON("realTimeActivity/GetRealTimeData",
function (result) {
// Do stuff
}
).fail(function (jqXHR, textStatus, errorThrown) {
// No error message comes back
})
然而每次都有效:
$.getJSON("realTimeActivity/GetRealTimeData?u=" + (new Date).getTime(),
function (result) {
// Do stuff
}
).fail(function (jqXHR, textStatus, errorThrown) {
// No error message comes back
})
我可以离开它,但我想了解为什么会这样,而不需要这个黑客。
答案 0 :(得分:2)
这是因为缓存,并且因为URL与之前的URL相同,因此它忽略了它。通过附加时间戳,使URL不同,并且每个请求都会通过。
另一种选择是将缓存设置为false(使用.ajax()),有趣的是,只需为您添加时间戳。
$.ajax({
/* ... */
cache: false
});