2012-09-04 71 views
2

在我的Sencha Touch應用程序中,我在localStorage中存儲了一些值,並且它們存儲得很好。後來我需要將這些值用於請求到商店,我需要將這些值作爲請求標頭傳遞。代碼如下所示:從localStorage獲取值用於Sencha Touch AJAX代理

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' 
      } 
     } 
    } 
}); 

然而,無論AUTH_TOKEN和USER_EMAIL值返回爲「未定義」當Chrome開發者工具,我清楚地看到這些值。除此之外,我在Sencha Touch應用程序的許多其他地方訪問這些值,但無法在商店本身中實現。

有人能告訴我我做錯了什麼嗎?

感謝

回答

2

我通過以下方式解決了這個問題。在加載商店之前,我會在請求期間傳遞標題,而不是在商店中傳遞標題。這裏是代碼爲:

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

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

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

希望這會幫助別人!