从Ext.data.Store访问http状态代码

sha*_*unc 5 javascript ajax extjs xmlhttprequest extjs4

我有一个http API(令人震惊的新技术)对设置不同响应状态的不同错误做出反应.

问题是 - 当使用Ext.data.Store和一些XMLHttpRequest-inside代理时,处理这种状态的最佳方法是什么?据我所知,"load"事件不会直接传递状态,也不会传递"异常",最后一个事件实际上甚至不会在收到4**状态时触发.

所以,我可以从代码XHR实例看到的是从Ext.data.store隐藏的,所以这个问题也可以表述为"什么是最好的ExtJS的做法来处理低级别XHR对象".

mis*_*cko 8

Ext.data.Store上没有异常事件.而是Ext.data.proxy.Server及其定义异常事件的子类(如Ext.data.proxy.Ajax).监听器接收包含http状态的响应对象.

根据您的设置,您可以在商店的代理上注册一个监听器,或者 - 如果您的商店使用模型 - 在模型的代理上注册.

这个测试设置适用于Chrome 14和FF 6:

var store = Ext.create('Ext.data.Store', {
    fields: [ 'field1', 'field2'],

    proxy: {
        type: 'ajax',
        url: 'api/data.json',
        reader: {
            type: 'json',
            root: 'data'
        },
        listeners: {
            exception: function(proxy, exception, operation) {
                console.log(response.status);
            }

        }
    },
});
store.load(); 
Run Code Online (Sandbox Code Playgroud)