我有一个像这样的jQuery ajax函数:
jQuery.ajax({
url : '/blabla',
method : 'post',
data: {
bla : bla
}
}).done(function(data) {
// do lots of stuff
});
..我希望能够添加一个检查,传递给完成回调函数的数据中没有session_timed_out值。假设我有许多类似于上面的功能,但它们都做不同的事情,但是他们都需要检查会话是否先超时。有没有正确的方法来扩展done()所以它最初检查超时?我试图做这样的事情,但失败了:
var myAjax = function(options,callback){
var defaults = {
done: function(data){ //hijack the success handler?
if(check(data)){
callback(data);
}
}
};
jQuery.extend(options,defaults);
return jQuery.ajax(options);
}
当我使用这个扩展函数时,它像以前一样工作,这意味着检查永远不会被调用,因为它似乎被实际实现中的done()回调所取代,我认为这是有意义的。所以我想知道是否有办法“装饰”或扩展done()函数,因此它首先检查会话超时。或者我是否需要手动将相同的会话检查添加到我所做的所有ajax中?