Может ли ответ AJAX установить файл cookie?



может ли AJAX-ответ установить cookie? Если нет, то каково мое альтернативное решение? Должен ли я установить его с помощью Javascript или что-то подобное?

787   4  

4 ответов:

да, вы можете установить cookie в запросе AJAX в коде на стороне сервера так же, как и для обычного запроса, поскольку сервер не может различать обычный запрос или запрос AJAX.

AJAX-запросы - это просто специальный способ запроса на сервер, сервер должен будет ответить, как и в любом HTTP-запросе. В ответ на запрос вы можете добавить куки.

по словам раздел 4.6.3 спецификации w3 для XMLHttpRequest агент пользователя должен соблюдать заголовок Set-Cookie. Поэтому ответ-да вы должны быть в состоянии.

цитата:

Если агент пользователя поддерживает управление состоянием HTTP, он должен сохраняться, отбросить и отправить куки (как получено в ответе Set-Cookie заголовок и отправляется в заголовке файла Cookie), как применимо.

для записи имейте в виду, что все вышеперечисленное (все еще) верно только в том случае, если вызов AJAX выполняется в том же домене. Если вы изучаете настройку cookies на другом домене с помощью AJAX, вы открываете совершенно другой ящик Пандоры. Однако чтение междоменных куки-файлов работает (или, по крайней мере, сервер обслуживает их; позволяет ли UA вашего клиента вашему коду получить к ним доступ-это, опять же, другая тема; с 2014 года они это делают).

также проверьте, что ваш сервер не устанавливает безопасные куки на не http-запрос. Только что узнал, что мой запрос ajax получал сеанс php с "безопасным" набором. Поскольку я не был на https, он не отправлял обратно файл cookie сеанса, и мой сеанс сбрасывался при каждом запросе ajax.

Comments

    Ничего не найдено.