0
function load() {
var url = buildUrl(null, true);
$.ajax(url, {
cache: true,
dataType: 'json',
beforeSend: function(xhr) {
if (typeof plugin.cache[url] !== 'undefined') {
var result = plugin.cache[url];
// xhr.done();
// xhr.abort();
// xhr.complete();
return false;
}
return true;
},
success: function(result, textStatus, jqXHR) {
handleResult(result);
plugin.cache[url] = JSON.stringify(result);
}
});
};
$(document).ajaxError(function(event, jqxhr, settings, exception) {
switch (jqxhr.status) {
..
}
}
当我将结果缓存时,我希望$.ajax
不要继续进行调用。 如果我返回false或从beforeSend()
调用xhr.abort()
,则触发ajaxError。当我拨打xhr.done()
或xhr.complete()
时,通话进行。
有没有什么办法可以阻止电话继续进行而不会触发$.ajaxError
?
浏览器将成为自动缓存结果,有没有你想避免这样一个特殊的原因? – Vishal
由于某些原因,将缓存属性设置为true(仅),仍然会发出AJAX请求。 – Smokie
缓存只适用于GET和HEAD请求,如果你不使用这些,你需要手动实现缓存 - 你已经在做的事情。因此,为了防止错误调用,您需要在发出ajax请求之前检查手动缓存。 – Vishal