La sesión no se crea después de la solicitud Ajax en Internet Explorer

Estoy trabajando en un sitio web y comencé a depurar Internet Explorer recientemente. La autenticación se realiza a través de una solicitud Ajax POST a una acción PHP Zend que verifica el inicio de sesión/contraseña en la base de datos y escribe una cookie si se activa "Recordarme". JSON se envía de vuelta a Ajax con código de estado. (Bueno para ir, advertencia, error, etc.) Y luego algo como esto:

if( result.code == 0 ){ 
   window.location.reload();
   return false;
}

Primero, IE intentó descargar un archivo después de enviar el inicio de sesión que contenía la respuesta JSON, por lo que realicé algunos cambios en los encabezados para evitar ese comportamiento.

Pero ahora, IE no hace nada. Quiero decir, la función de éxito de Ajax recibe el código bueno (0) que dice que todo está bien, vuelve a cargar la página, pero aún no ha iniciado sesión.

En nuestros registros, Zend también dice que todo está bien.

Nota: Me di cuenta de que podía iniciar sesión solo cuando marcaba la casilla de verificación "Recordarme".

¿De dónde crees que viene eso? Funciona bien en otros navegadores y me estoy volviendo loco.

EDIT 1: No hay cambios después de agregar encabezados P3P.

preguntado el 01 de julio de 12 a las 22:07

2 Respuestas

Esta es una posibilidad remota, pero ¿tal vez el navegador está almacenando en caché la página? En otras palabras, ¿alguno de estos métodos ayuda? ventana.ubicación.recargar con borrar caché

Alternativamente, el enlace en esta respuesta destaca algunas otras cosas para verificar (incluida la diferencia horaria que afecta a IE pero no a FF)

contestado el 23 de mayo de 17 a las 13:05

Finalmente lo conseguimos. gracias cristian este enlace definitivamente ayudó. Por razones de seguridad, estábamos regenerando la ID de la sesión con Zend_Session::regenerateId() después de la verificación de inicio de sesión. Donde otros navegadores solo están regenerando ID de sesión, IE destruye y genera uno nuevo. Así que pierde la conexión. (Supongo)

Respondido 03 Jul 12, 16:07

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.