extjs store.load пропускает заголовок авторизации
Я пытаюсь пройти в шапке Authorization: 'Bearer <TOKEN>'
через параметр в мой store.load()
и это не работает.
Это работает, если я делаю это так:
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) {
1 ответ
Решение
Вы не можете сделать это в своей загрузке, так же, как вы не можете предоставить другие дополнительные параметры в своей загрузке. При загрузке вы можете перезаписать только небольшое подмножество конфигов, но не почти все. Вам нужно будет установить его перед загрузкой:
store.getProxy().setHeaders({
Authorization:'Bearer ' + ...
});
store.load({
...
Если setHeaders is not a function
в вашей версии ExtJS вы можете просто установить
store.getProxy().headers = {
Authorization:'Bearer ' + ...
};