Ext.ajax является одноэлементным, поэтому вы можете определить глобальный обработчик для всех ошибок запроса.
Ваш код на стороне сервера должен будет возвращать HTTP 403 или аналогичный, если пользователь не авторизован.Поместите это где-то (только один раз) в коде вашего кода:
Ext.Ajax.on('requestexception', function(conn, response, options) {
if (response.status == 403) {
Ext.MessageBox.alert('Authentication', 'You are not logged in.');
/* you can display a login box or something here */
}
};
Если запрос AJAX не выполняется из-за истечения сеанса, вы можете изящно обработать его в своем коде.
Аргумент options содержит параметры запроса AJAX, поэтому, если вы предоставите вашему пользователю окно входа в систему и проведете повторную аутентификацию, вы можете повторно отправить исходный запрос AJAX, который он делал автоматически.Этот процесс должен быть беспроблемным для всего остального кода, который выполняет запросы AJAX.