如何在实例化后将标头添加到Sencha Touch代理类

时间:2012-12-23 12:45:52

标签: sencha-touch sencha-touch-2

我目前有一个像这样的自定义代理类:

Ext.define('MyApp.proxy.SecureProxy', {
    alias: 'proxy.securerestproxy',
    extend: 'Ext.data.proxy.Rest',  

    constructor: function () {
        this.headers = {
           // "AUTH-TOKEN": MyApp.app.authToken
        }
        this.callParent(arguments);
    },

    config: {
        headers: {
            //"AUTH-TOKEN": MyApp.app.authToken
        }
    }       
});

问题是,我无法在config或构造函数中设置我的标头值,因为这在过程中太早。在进行身份验证之前,在设置MyApp.app.authToken之前实例化此类。有没有办法可以在应用程序类中将头值设置为auth令牌,或者在身份验证发生之后,还是可以在其余代理的请求前事件中执行此操作?

问题出在API文档中,只有1个事件:Exception。我以为我可以使用代理上的BeforeRequest事件。

1 个答案:

答案 0 :(得分:3)

随时都可以

var headers = proxy.getHeaders() || {};
headers["AUTH-TOKEN"] = MyApp.app.authToken;
proxy.setHeaders(headers)

编辑:也可以更改Ext.Ajax单例:

var defaultHeaders = Ext.Ajax.getDefaultHeaders() || {};

if (!defaultHeaders["AUTH-TOKEN"]) {
    defaultHeaders["AUTH-TOKEN"]  = MyApp.app.authToken;
    Ext.Ajax.setDefaultHeaders(defaultHeaders)
}