如何正确覆盖Extjs4中的Ext.data.Connection?

如何正确覆盖Extjs4中的Ext.data.Connection?,extjs4,Extjs4,我正在尝试创建一个自定义函数,该函数将在服务器每次发送响应时调用。我可以使用以下代码在Extjs3中成功完成此操作: Ext.override(Ext.data.Connection, { handleResponse : function( response ) { console.log('function call'); } }); 我想知道为了让这段代码在Extjs 4.2.0中工作,我需要修改什么 谢谢,您实际上不需要覆盖或扩展任何内容。的文档显示它

我正在尝试创建一个自定义函数,该函数将在服务器每次发送响应时调用。我可以使用以下代码在Extjs3中成功完成此操作:

Ext.override(Ext.data.Connection, { 
    handleResponse : function( response ) {
        console.log('function call');
    }
});
我想知道为了让这段代码在Extjs 4.2.0中工作,我需要修改什么


谢谢,您实际上不需要覆盖或扩展任何内容。的文档显示它触发了三个事件。其中两个是请求成功时触发的
requestcomplete
,以及请求失败时触发的
requestexception

现在,请参阅演示如何捕获给定类的所有事件的文档。例如:

Ext.util.Observable.observe(Ext.data.Connection, {
    requestcomplete: function(conn, response, options){
        // Do stuff on success
    },
    requestexception: function(conn, response, options){
        // Do stuff on failure
    }
});

这就是获取所有
Ext.Ajax
请求的所有完成事件的方式。在内部,
observe
方法使用
capture
方法,因此在清理类时必须调用
releaseCapture

查看Extjs 4.2.0 library file Connection.js内部,我注意到没有像Extjs 3.2.1中声明的那样声明“handleResponse”函数。相反,extjs4.2.0有一个“onComplete”函数。重写此函数使我能够在“requestcomplete”之前处理一些类似于重写“HandlerResponse”的事情。

我同意您的回答,但是,我在重写的HandlerResponse函数中传递了一个带有“isError”的响应。这样,我就能够识别自定义响应是否包含错误,然后根据“isError”调用fireEvent(“requestcomplete/requestexception”)。您的方式迫使我在“requestcomplete”中执行逻辑,并在读取响应参数的“isError”后触发“requestexception”。。。应该是这样吗?或者我是否可以使用某个事件在触发“requestcomplete”或“requestexception”之前读取响应?看起来您在我回复您的评论之前就已经解决了。理想情况下,您应该发送一个带有错误代码的响应,并在错误正文中包含“iError”消息。但您也可以按照您的建议覆盖
onComplete