4

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

4

1 回答 1

14

会话值在服务器上可用。

您可以在控制器中像这样设置它们:

session[:user_name] = @user.name

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

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

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

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

cookies[:user_name] = @user.name

(您还可以使用 options为 cookie 指定路径、过期等。)

然后可以使用 jQuery 访问它:

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

注意:您也可以通过解析使用纯 javascript(不是 jQuery)访问 cookiedocument.cookie,但让 jQuery 为您做这件事容易得多(如果您已经在使用该库)。

于 2013-03-12T03:39:32.783 回答