¿Puede una respuesta AJAX establecer una cookie?

¿Puede una respuesta AJAX establecer una cookie? Si no, ¿cuál es mi solución alternativa? ¿Debo configurarlo con Javascript o algo similar?

, puede configurar la cookie en la solicitud AJAX en el código del lado del servidor, tal como lo haría con una solicitud normal, ya que el servidor no puede diferenciar entre una solicitud normal o una solicitud AJAX.

Las solicitudes AJAX son solo una forma especial de solicitar al servidor, el servidor deberá responder de nuevo como en cualquier solicitud HTTP. En la respuesta de la solicitud puede agregar cookies.

De acuerdo con la sección de especificaciones w3 4.6.3 para XMLHttpRequest, un agente de usuario debe respetar el encabezado Set-Cookie. Entonces la respuesta es sí, tú deberías ser capaz de hacerlo.

Cotización:

Si el agente de usuario es compatible con HTTP State Management, debe conservar, descartar y enviar cookies (tal como se recibió en el encabezado de respuesta Set-Cookie y enviado en el encabezado Cookie) según corresponda.

Para el registro, tenga en cuenta que todo lo anterior es (aún) verdadero solo si la llamada AJAX se realiza en el mismo dominio. Si está buscando establecer cookies en otro dominio usando AJAX, está abriendo una lata de gusanos totalmente diferente. Sin embargo, la lectura de cookies entre dominios funciona (o al menos el servidor les sirve, si el UA de su cliente permite que su código acceda a ellos es, nuevamente, un tema diferente, a partir de 2014 lo hacen).

También verifique que su servidor no esté configurando cookies seguras en una solicitud que no sea http. Acabo de enterarme de que mi solicitud de ajax estaba recibiendo una sesión de php con un conjunto “seguro”. Como no estaba en https, no devolvía la cookie de sesión y mi sesión se restablecía en cada solicitud de Ajax.