我对ajax / http异常处理有点困惑:我试图在extjs中全局处理401
异常,并尝试使用以下代码来执行此操作:
Ext.Ajax.on('requestexception', function (conn, response, options) {
if (response.status === 401) {
log.console = '401 recieved';
}
});
它可以正常工作并处理401
,但只有在您明确指定Ext.Ajax.request()
时才可以。它没有处理ajax存储......所以这里有一个问题:我可以处理所有401 http
错误来到我的应用程序吗?谢谢!
答案 0 :(得分:2)
您需要对使用Ajax连接的任何Ext类进行错误处理。其中一些可能包括Ext.data.Connection
,Ext.data.proxy.Ajax
和Ext.form.action.Action
。
例如,使用Ext.data.proxy.Ajax
,您可以覆盖类以在requestexception
上添加侦听器:
Ext.define('MyApp.override.AjaxProxy', {
override: 'Ext.data.proxy.Ajax',
constructor: function(config) {
this.callParent(config);
this.on('requestexception', MyApp.utils.Utils.handle401Error);
}
})