Ext.Ajax.defaultHeaders игнорируется, когда JsonStore.autoLoad = true - PullRequest
0 голосов
/ 29 ноября 2010

Я создаю RESTful API для личного проекта, а административная область использует Ext.Поскольку API требует, чтобы токен передавался взад и вперед через пользовательский заголовок «X-API-Auth», я должен иметь возможность добавлять его к каждому Ajax-запросу, сделанному Ext.

Например, вВ области управления пользователями у меня есть GridPanel, использующий JsonStore, отображающий список зарегистрированных пользователей.Свойство autoLoad имеет значение TRUE.Таким образом, при первом посещении экрана GridPanel автоматически заполняется.

Прежде чем что-либо отображать, я включаю следующие заголовки:

Ext.Ajax.defaultHeaders = {
    'X-API-Auth' : __API_KEY,
    'Accept' : 'application/json'
};

Где '__API_KEY' - токен.

Теперь я понимаю, что эти пользовательские заголовки теперь должны отправляться при каждом вызове Ajax.Когда я впервые посещаю страницу со списком участников, я получаю 403 Запрещенный ответ, генерируемый API.Это связано с тем, что первоначальный вызов Ajax, выполняемый GridPanel, не отправляет требуемые заголовки.API функционирует должным образом, поскольку без заголовков он не может аутентифицировать запрос.

Теперь, если я нажму кнопку «перезагрузить» во включенном компоненте PagingToolbar, связанном с JsonStore GridPanel, он отправляет заголовки.Все вызовы Ajax к конечной точке списка участников, вызванные вручную, дают желаемый результат.

Существует ли причина, по которой «autoLoad» в хранилище не учитывает свойство «defaultHeaders»?Если кто-то может пролить свет на это, это было бы очень ценно.Я также спрашивал об этом на форумах Sencha, и никто, кажется, не имеет ответа.

Спасибо!

1 Ответ

1 голос
/ 29 ноября 2010

Хорошо, все, что написано для не. Я испортил порядок операции. Все эти файлы JavaScript были созданы Ext Designer. Я думал, что помещаю свойство defaultHeaders в начало пути выполнения, но оказывается, что я ошибся.

Все исправлено.

Я собираюсь порезаться.

/ навсегда один

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...