从localStorage获取值以在Sencha Touch AJAX代理中使用

时间:2012-09-04 12:24:35

标签: sencha-touch sencha-touch-2

在我的Sencha Touch应用程序中,我将一些值存储在localStorage中,并且它们存储得很好。稍后我需要将这些值用于对商店的请求,我需要将这些值作为请求标头传递。代码如下所示:

Ext.define('AppName.store.storeName', {
    extend: 'Ext.data.Store',

    requires: [
        'AppName.model.modelName'
    ],

    config: {
        model: 'AppName.model.modelName',
        storeId: 'storeName',
        proxy: {
            type: 'ajax',
            url: 'http://dynamic',
            headers: {
                auth_token: localStorage.getItem('activeUserToken'),
                user_email: localStorage.getItem('userEMail')
            },
            reader: {
                type: 'json'
            }
        }
    }
});

但是,在Chrome开发者工具中,我清楚地看到这些值时,auth_token和user_email值都返回为“未定义”。除此之外,我在Sencha Touch应用程序的许多其他地方访问这些值,但不能在商店本身中这样做。

有人可以告诉我我做错了吗?

由于

1 个答案:

答案 0 :(得分:2)

我已通过以下方式解决了这个问题。在加载商店之前,我在请求期间传递标题而不是传递商店中的标题。这是代码:

    Ext.getStore('storeName').getProxy().setUrl(someURL);

    Ext.getStore('storeName').getProxy().setHeaders(
         {
             "auth_token" : activeUserToken,
             "user_email" : userEmail
         }
    );

    Ext.getStore('storeName').load();

希望这会有所帮助!