【问题标题】:Rails - Store a cookie in controller and get from Javascript, JqueryRails - 在控制器中存储 cookie 并从 Javascript、Jquery 获取
【发布时间】:2013-02-27 09:59:14
【问题描述】:

是否可以将用户的 Cookie 或 Session 存储在 Controller 中并通过从 JS 或 Jquery 访问它来获取 cookie?

【问题讨论】:

    标签: ruby-on-rails cookies session-cookies


    【解决方案1】:

    Session 值在服务器上可用。

    你可以像这样设置它们in your controller

    session[:user_name] = @user.name
    

    如果您想稍后在 javascript 中访问该值,您可能希望在视图中执行以下操作:

    <%= javascript_tag do %>
      var userName = '<%= session[:user_name %>';
    <% end %>
    

    Cookies 由浏览器管理,因此访问方式不同。

    在你的控制器中设置一个:

    cookies[:user_name] = @user.name
    

    (也可以为cookie using options指定路径、过期时间等。)

    然后可以使用 jQuery 访问它:

    var userName = jQuery.cookie("user_name");
    

    注意:您也可以通过解析 document.cookieaccess the cookie using pure javascript(不是 jQuery),但是让 jQuery 为您完成它要容易得多(如果您已经在使用该库) .

    【讨论】:

    • 当我这样做时,我得到 $.cookie 不是一个函数。我应该包括 jquery 以外的任何 Js 吗?我正在使用 jquery.min.1.9.1
    • @Srikanth:尝试在响应中不使用路径哈希(我已更新该行)使用它。
    • 另外,根据您加载的其他 JS 库,您应该将所有“$”调用替换为“jQuery”。 (一些库 - “原型”特别是使用“$”命名空间。有关更多信息,请参阅stackoverflow.com/questions/6746352/…
    • end 之前在&lt;%= javascript_tag do %&gt; ... &lt;%= end %&gt; api.rubyonrails.org/classes/ActionView/Helpers/… 中没有等号
    • jquery cookie 已弃用,请改用js-cookie
    猜你喜欢
    • 1970-01-01
    • 2018-08-30
    • 2022-01-02
    • 2012-07-14
    • 2020-01-25
    • 1970-01-01
    • 2014-09-18
    • 2010-11-13
    • 2016-05-28
    相关资源
    最近更新 更多