Si necesita esto solo para reconocer cuando el usuario no está autenticado, es posible que desee considerar hacer otra cosa. Como la adición de un controlador a Ajax Singleton:
function addAjaxErrorHandler(object) {
Ext.Ajax.on('requestexception', function(conn, response, options, e) {
var statusCode = response.status,
errorText = null,
captionText = response.statusText;
// 404 - file or method not found - special case
if (statusCode == 404) {
Ext.MessageBox.alert('Error 404', 'URL ' + response.request.options.url + ' not found');
return;
}
if (response.responseText != undefined) {
var r = Ext.decode(response.responseText, true);
if (r != null) {
// 401 - not authenticated. For some reason we don't have authentication cookie anymore
if (r.ErrorCode == 401) {
Ext.MessageBox.alert('Error', 'You must log in to use application',
function() {
// do something when user is not authenticated
object);
return;
}
errorText = r.ErrorMessage;
}
if (errorText == null)
errorText = response.responseText;
}
if (!captionText)
captionText = 'Error ' + statusCode;
Ext.MessageBox.alert(captionText, errorText);
},
object);
}
A continuación, sólo llamar a esta función de su función() application.launch y pasan objeto de aplicación por lo que el alcance si se ha definido.
¿Por qué desea anular Connection para mostrar el formulario de inicio de sesión exactamente? para presentar al usuario el formulario de inicio de sesión si no está autenticado? – sha
Exactamente. Y también si la sesión expira. –
Agregué el controlador global para los errores de Ajax y analicé allí los errores no autenticados. Tal vez sea algo que te convenga también. – sha