javascript – extjs全局处理http响应

我对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错误来到我的应用程序?谢谢!

最佳答案 您需要对使用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);
    }
})
点赞