2010-10-14 26 views
6

En mi aplicación, estoy cargando una tabla con AJAX. Pero cuando la sesión del usuario expira me da la página de inicio de sesión como respuesta que se carga en el área de la tabla.Respuesta de tiempo de espera de sesión en AJAX

Me gustaría redireccionar a la página de inicio de sesión que puede estar en javascript cuando se agota el tiempo de espera de la sesión durante la llamada AJAX.

+0

Ya es demasiado tarde para pensar una pregunta como esta y encontré la tuya. en cualquier carga de página (lado del servidor) verifico la existencia del usuario. si no están conectados, moriré una cadena que contendrá ajaxtimeout. La mayoría de mis propias bibliotecas comprueban responsetext.indexof ('ajaxtimeout') y en este caso voy a window.location = login. –

Respuesta

5

Al representar la página de inicio de sesión, puede agregar un encabezado HTTP personalizado a la respuesta: X-LOGIN-PAGE: True. Luego realice su llamada AJAX y verifique la presencia de este encabezado personalizado en la devolución de llamada exitosa. Actúa en consecuencia si está presente.

+0

En ese caso, necesito verificar esto en cada llamada AJAX en todas las páginas. –

+1

Si está utilizando jquery, puede configurar las opciones globales de ajax: [jquery.ajaxSetup] (http://api.jquery.com/jQuery.ajaxSetup/) y realizar la redirección en la devolución de llamada 'completa' sin modificar sus llamadas AJAX existentes . Si no está utilizando jQuery, dependiendo de cómo esté realizando sus llamadas AJAX puede que haya o no soluciones. –

0

Puede verificar la autenticación en el método que llama la llamada AJAX y si no se encuentra puede simplemente devolver una marca. En el controlador de AJAX en la página del cliente, puede detectar y redirigir a la página de inicio de sesión.

Cuestiones relacionadas