2016-09-24 5 views
0

Я пытаюсь передать в заголовок Authorization: 'Bearer <TOKEN>' через параметр в мой store.load() и он не работает.extjs store.load pass authorization header не течет в

Это работает, если я делаю это так:

Ext.define('ExtApplication4.model.MenuListModel', { 
    extend: 'ExtApplication4.model.Base', 
    requires: [ 
     'ExtApplication4.model.Base' 
    ], 
    fields: [ 
     { 
      name: 'text', 
      type: 'string' 
     }, 
     { 
      name: 'iconCls', 
      type: 'string' 
     }, 
     { 
      name: 'className', 
      type: 'string' 
     } 
    ], 
    proxy: { 
     type: 'ajax', 
     url: 'http://xxxxx/xxx/api/user/getusermenus/', 
     reader: { 
      type: 'json', 
      rootProperty: 'data' 
     }, 
     headers: { 
      Authorization: 'Bearer ' + Ext.decode(Ext.util.Cookies.get('token')) 
     } 
    } 
}); 

Проблема заключается в том, я хочу, чтобы заполнить заголовок авторизации в моем store.load(). Я потратил часы, пытаясь найти синтаксис, чтобы сделать это. Все, что я делаю, заголовок не добавляется.

Может ли кто-нибудь показать мне, как это сделать?

Это то, что я пробовал:

targetStore.load({ 
    params: { 
     username: uname 
    }, 
    //headers: {    
    // Authorization: 'Bearer ' + token; 
    //}, 
    callback: function (records, operation, success) { 

ответ

6

Вы не можете сделать это в вашей нагрузки, так же, как вы не можете предоставить другие extraParams в вашей нагрузке. При загрузке вы можете только перезаписать небольшой набор конфигураций, но не почти все. Вы должны установить его перед загрузкой:

store.getProxy().setHeaders({ 
    Authorization:'Bearer ' + ... 
}); 
store.load({ 
    ... 

Если setHeaders is not a function в вашей версии ExtJS, вы можете просто установить

store.getProxy().headers = { 
    Authorization:'Bearer ' + ... 
}; 
+0

благодарственное работал ... спасибо !!!! – solarissf