У меня есть контроллер, который пытается принимать входные данные формы, задавать значения в файле cookie, а затем перенаправлять страницу, которая будет извлекаться из этого файла cookie.Rails 4: Как настроить файлы cookie при перенаправлении?
Проблема в том, что файл cookie никогда не устанавливается в заголовках переадресации.
Примечания: Я тестировал в Chrome и FF. Версия Rails - 4.0.13. Настройка cookie без перенаправления работает как ожидалось.
Вот код контроллера:
def create
request.cookies[:foo] = "bar"
# also tried:
# cookies[:foo]="bar"
# cookies.signed[:foo]="bar"
# cookies[:foo] = {
# value: "bar",
# expires: 1.month.from_now,
# domain: ".myapplicationhostname.com"
# }
redirect_to root_url
end
Заголовок ответа на редиректе не содержит атрибут Set-Cookie и как таковые, значения куков не доступны в контроллере/действии в перенаправленном путь.
Я нашел contradictory evidence, что некоторые браузеры не принимают файлы cookie в переадресации, но похоже, что это уже не так? И вообще, ни FF, ни Chrome не показывают Set-Cookie
в заголовке ответа, поэтому он не отображается, это проблема с браузером.
Вот ответ заголовка из локона, обратите внимание на отсутствие Set-Cookie
:
HTTP/1.1 302 Moved Temporarily
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-UA-Compatible: chrome=1
Location: http://app.mydomain.com:3000/
Content-Type: text/html; charset=utf-8
Cache-Control: no-cache
X-Request-Id: 1fc1c7e5-7489-4720-bb70-28588f3abcb6
X-Runtime: 4.688166
Connection: close
Server: thin 1.6.2 codename Doc Brown
Как получить рельсы установить кук (или, по крайней мере, установить заголовок) на переадресовываешь?
Что проблема с заголовками? 'request.headers [" foo "] =" bar "' – RAJ
Переадресовываете ли вы в тот же домен? – Alexander
Я пытаюсь установить cookies на стороне сервера, и это обычно делается с помощью HTTP-заголовка Set-Cookie. Предположим, я могу попробовать настроить этот заголовок вручную, но это кажется взломанным. –