感谢您阅读。
基本上,我想做的是覆盖ajax成功事件。
在这里,我遇到的大多数指南和问题似乎只解决为成功事件添加回调的问题。我实际上想覆盖事件本身。
本质上,我需要能够在$ .ajax之前捕获成功事件,并在ajax事件接收数据之前运行我的逻辑。
我目前所拥有的就是这个,但似乎在'this'上下文中更改值无济于事。
var XMLHttpRequestSend = XMLHttpRequest.prototype.send;
XMLHttpRequest.prototype.send = function(){
var onError = this.onerror;
var onLoad = this.onload;
this.onload = (function(){
this.response = "new response";
return onLoad.apply(this, [].slice.call(arguments));
});
return XMLHttpRequestSend.apply(this, [].slice.call(arguments));
}
有什么建议吗?
答案 0 :(得分:0)
我找到了解决方法。
以下似乎可以解决。
var ajaxContext = $.ajax;
$.ajax = function(options){
var success = options.success;
options.success = (function(data){
data = data.Results;
return success.apply(this, [].slice.call(arguments));
});
return ajaxContext.apply(this, [].slice.call(arguments));
};