Sé que esto se ha preguntado anteriormente en varias formas, pero parece que no puedo evitar el problema. He intentado usar tanto jQuery como la API JS nativa para realizar las solicitudes de Ajax.HTTP Cookies y solicitudes de AJAX a través de HTTPS
Mi situación es la siguiente (ver el diagrama adjunto):
- navegador realiza una solicitud HTTP
- Server responde y fija cookie persistente
- navegador hace HTTP petición Ajax, Cookie está ahí bien
- El servidor responde como se esperaba, las actualizaciones Cookie
- El navegador hace una solicitud HTTPS Ajax, la cookie ya no existe (?!)
- servidor da respuesta "por defecto", ya que no hay Cookie (comportamiento no deseado)
Antes de que nadie se inicia una conferencia sobre las solicitudes entre dominios permítanme decir un par de cosas:
- Sé que esta es una solicitud entre dominios (protocolo diferente), y es por eso que el Servidor establece el encabezado
Access-Control-Allow-Origin
en la respuesta (y estoy usando Chrome y Firefox, que admiten CORS) - Lo que también sé, sin embargo, es que la cookie HTTP debe ser manejable a través de HTTPS (ver here) s Dado que el host es el mismo
- (EDITAR) La cookie está configurada correctamente para el dominio general (p. .domain.ext) y ni los indicadores HttpOnly ni Secure están configurados
Entonces, ¿por qué, por qué, por qué el navegador no pasa la cookie al hacer la llamada HTTPS Ajax? ¿Algunas ideas? Estoy a punto de perder la cabeza ...
+-----------+ HTTP Request +-----------+
|Browser |+---------------->|Server |
+-----------+ +-----------+
HTTP Response
<----------------+
Set-cookie
Ajax HTTP Req.
+---------------->
Cookie (OK)
HTTP Response
<----------------+
Set-cookie (OK)
Ajax HTTPS Req.
+---------------->
No Cookie (!!!)
captura de la petición HTTP volcado y comprobar si alguno de los '' http secure' y sólo 'flags se establecen en la declaración' Set-Cookie'. Ese sería al menos un buen lugar para comenzar. – dpq
Ninguno está configurado. – NeXuS
http://stackoverflow.com/questions/5441836/jquery-cookie-values-not-maintained-while-moving-from-http-to-https parece que esta es una limitación deliberada. – dpq