2010-10-14 24 views
6

Nella mia applicazione, sto caricando alcune tabelle usando AJAX. Ma quando la sessione dell'utente scade, mi dà la pagina di login come risposta che viene caricata nell'area della tabella.Risposta timeout sessione in AJAX

Vorrei reindirizzare alla pagina di accesso potrebbe essere in javascript quando si verifica il timeout della sessione durante la chiamata AJAX.

+0

Sono troppo tardi per pensare a una domanda come questa e ho trovato la tua. in qualsiasi caricamento della pagina (lato server) controllo l'esistenza dell'utente. se non sono registrati, muoio semplicemente una stringa che conterrà ajaxtimeout. La maggior parte delle mie librerie controlla la presenza di responsetext.indexof ('ajaxtimeout') e in questo caso userò window.location = pagina di login. –

risposta

5

Durante il rendering della pagina di accesso è possibile aggiungere un'intestazione HTTP personalizzata alla risposta: X-LOGIN-PAGE: True. Quindi eseguire la chiamata AJAX e verificare la presenza di questa intestazione personalizzata nella callback di successo. Agisci di conseguenza se presente.

+0

In tal caso, devo verificarlo in ogni chiamata AJAX su tutte le pagine. –

+1

Se si sta utilizzando jquery, è possibile configurare opzioni globali Ajax: [jquery.ajaxSetup] (http://api.jquery.com/jQuery.ajaxSetup/) ed eseguire il reindirizzamento nel callback 'complete' senza modificare le chiamate AJAX esistenti. . Se non si utilizza jQuery, a seconda di come si stanno eseguendo le chiamate AJAX potrebbero esserci o meno soluzioni. –

0

È possibile verificare l'autenticazione nel metodo chiamato dalla chiamata AJAX e se non trovato può solo restituire un flag. Nel gestore AJAX nella pagina client, è possibile rilevare e reindirizzare alla pagina di accesso.

Problemi correlati