【问题标题】:Reading cookie value in Rails在 Rails 中读取 cookie 值
【发布时间】:2011-04-03 19:26:36
【问题描述】:

我在 JavaScript 中成功设置了一个 cookie:

var date = new Date();
date.setTime(date.getTime()+(1*24*60*60*1000)); //one day expiration date
var expires = "; expires="+date.toGMTString();
window.name = date.getTime();
document.cookie = "window_name="+window.name+expires+"; path=/";

然后在rails中我尝试阅读(我尝试了以下两种方法):

cookies[:window_name]
request.cookies['window_name']

两者都有一个空值。 如何访问我在 Javascript 中设置的 window_name cookie?

【问题讨论】:

  • 您是否验证过 cookie 实际上是由 JavaScript 使用 Firebug 等工具创建的?
  • 是的,使用 Firebug 甚至显示来自 javascript 'alert' 函数的值。
  • 在你的控制器中,如果你打印出来的“cookies”在里面吗?
  • 在您的控制器中放置一个调试器或在控制器端记录请求对象,例如“我的请求 #{@request.inspect}”

标签: javascript ruby-on-rails cookies


【解决方案1】:

我遇到了完全相同的问题,在 rails 端没有任何价值的 cookie...

使用 JavaScript 设置的 cookie 似乎需要在控制器的路径中。

假设你想在用户控制器中使用cookies[:window_name],你需要这样做:

document.cookie = "window_name="+window.name+expires+"; path=/users/";

必须是安全的东西... 如果您想在多个控制器中使用该 cookie,我不知道您能做什么,幸运的是我不这样做!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-15
    • 2013-12-07
    • 1970-01-01
    • 2014-12-05
    • 1970-01-01
    • 1970-01-01
    • 2016-02-03
    相关资源
    最近更新 更多