我正在尝试使用以下代码缓存jQuery ajax数据:
var CACHE={}
$(document).ajaxSuccess(function (event, jxhr, settings) {
//cache return data
CACHE[settings.url] = JSON.stringify(jxhr.responseJSON);
});
并在每个其他ajax发送事件上检查此CACHE。如果找到,则中止调用并返回本地缓存数据。
$(document).ajaxSend(function (event, jxhr, settings) {
if (CACHE[settings.url]) {
jxhr.abort();
jxhr.responseJSON = JSON.parse(CACHE[settings.url]);
jxhr.status = 200;
jxhr.statusText = "OK";
jxhr.readyState = 4;
}
});
问题是abort()
会自动调用fail()
回调。如何阻止此操作并运行success()
回调?