从客户端访问cookie

时间:2014-03-31 11:42:22

标签: c# jquery asp.net-mvc razor cookies

我在控制器上设置了一个cookie:

 HttpCookie loggedIn = new HttpCookie("LoggedIn", "true");
 Request.Cookies.Add(loggedIn);

我正准备在准备好文件时访问它吗?

$( document ).ready(function() {
   if ('@Request.Cookies["LoggedIn"]' != null) {
        var loggedIn = '@Request.Cookies["LoggedIn"].Value';
        console.log("Logged In " + loggedIn);
    }

});

这是否一直存在?

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

您实际上并未从客户端JavaScript访问Cookie。即使您将cookie发送回浏览器,您的代码也会忽略该cookie并尝试通过Razor扩展来访问它。我想这可行,但这似乎是一种迂回的方式。

您可以通过document.cookie属性从JavaScript访问Cookie,这是一个;分隔的Cookie列表。

由于您使用的是jQuery,更简单的方法是使用jquery.cookie插件。

var loggedIn = $.cookie('LoggedIn');

更新:我刚刚意识到你在请求中设置了cookie。您应该在响应中设置它:

Response.SetCookie(loggedIn);