Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   Автоматическое добавление заголовка в запрос. (https://javascript.ru/forum/extjs/65952-avtomaticheskoe-dobavlenie-zagolovka-v-zapros.html)

XAPuTOH 17.11.2016 14:41

Автоматическое добавление заголовка в запрос.
 
В обще рест сервис.
Аутентификация на базе токенов.
После ввода логина и пароля получаю токен. храню на клиенте и должен во все запросы его вставлять.

Как лучше сделать?

У меня есть прокси наследованый от REST. я в нем Url пересобираю.
Пробовал там прописать добавление хедера. но почемуто не добавляет.
Писал так :
headers: {
            'Authorization': "Bearer " + access_token)
        }


Если этот же код прописываю в настройках прокси стора то все работает.

Ну и учитывая, что помимо прокси используются и просто аякс запросы, а REST прокси наследуется от запроса, хотелось бы прописать добавление заголовка для всех запросов.

Как бы это лучше сделать?

XAPuTOH 18.11.2016 11:13

Нашел следующий выход:
в Application.js в разделе lunch:
launch: function () {
        Ext.Ajax.setDefaultHeaders ({
             'Authorization': 'Bearer ' + token
        });
   },

kolka 18.11.2016 16:12

Я делаю так.
  1. Во ViewModel в определении store прописываю listeners
    stores: {
    		p1: {
    			model: 'OOTTN.model.Seller',
    			autoLoad: false,
    			sorters: [{
    				property: 'phone1',
    				direction: 'ASC'
    			}, {
    				property: 'phone2',
    				direction: 'ASC'
    			}],
    			listeners: {
    				beforeload: 'onBeforeload'
    			}
    		}
    	}
    
  2. Во ViewController описываю функцию
    onBeforeload: function (store, operation, eOpts) {
    		Ext.apply(store.getProxy().getHeaders(), {
    		    'Authorization': 'Bearer ' + token
                });
    	}
    

XAPuTOH 22.11.2016 11:57

Так можно делать когда в одном сторе нужно применить.

А мне это нужно во всех запросах.

nohuhu 22.11.2016 22:17

XAPuTOH,

Ext.Ajax.setDefaultHeaders() именно для этого и предназначен.


Часовой пояс GMT +3, время: 13:48.