我有一个使用具有各种 AJAX 请求的 Backbone.js 的应用程序。我希望能够拦截所有 AJAX 请求并执行一些请求前和请求后功能,而不必在定义时指定这些功能。
我想要做的一个例子是,如果请求的响应表明用户未登录,则显示全屏模式。
我已经看过通过 jQuery 执行以下操作:
jQuery.ajaxSetup({
beforeSend: function() {
return console.log("mybefore");
}
});
但这似乎错过了使用套接字的 XHR 请求。
我还简要地研究了以下类似的操作:
XMLHttpRequest.prototype.reallySend = XMLHttpRequest.prototype.send;
XMLHttpRequest.prototype.send = function(body) {
console.log('mybefore');
this.reallySend(body);
};
在这个例子中,我不知道该怎么做after
所以毕竟,我的问题是:是否有一种优雅的方式来覆盖 ajax 函数来进行预处理和后处理,而不改变请求的方式。
(任何backbone.js 特定的解决方案也很好)