Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   Как удалить все виды и показать ЛогинОкно при утрате аутентификации? (https://javascript.ru/forum/extjs/68436-kak-udalit-vse-vidy-i-pokazat-loginokno-pri-utrate-autentifikacii.html)

khusamov 17.04.2017 00:51

Как удалить все виды и показать ЛогинОкно при утрате аутентификации?
 
Вот закончилась аутентификация на сервере. Как корректно все виды удалить и показать окно ввода логина и пароля?

Infarch 17.04.2017 11:22

Повесить глобальный хендлер на Аджакс. При потере сесии сервер возвращает, например, 401. Показываете модальное окно с логином.

Вот кусок рабочего кода. Там просто закрывается окно, но такова специфика системы. Перепилите по вкусу.

Ext.Ajax.on('requestexception', this.ajaxError);

...

	ajaxError: function(conn, response, options, eOpts){
		Ext.log('*** Server-side failure with status code ' + response.status);
		if(response.status == 401){
			Ext.Msg.show({
				title: 'Session error',
				message: 'Your session expired. Log-in to RIB again.',
				closable: false,
				buttons: Ext.Msg.YES,
				icon: Ext.Msg.WARNING,
				fn: function(btn) {
					Ext.log('*** CLOSING !!!!!');
					window.close(); 
				}
			});
		}
	}

khusamov 17.04.2017 12:34

Спасибо! Об этом:
Ext.Ajax.on('requestexception',

я даже и не думал. Я пока обработку исключений сделал путем создания потомка Ext.Ajax


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