extjs全局处理http响应

时间:2013-06-28 14:45:57

标签: javascript extjs

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

1 个答案:

答案 0 :(得分:2)

您需要对使用Ajax连接的任何Ext类进行错误处理。其中一些可能包括Ext.data.ConnectionExt.data.proxy.AjaxExt.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);
    }
})