从客户端访问 Cookie

本文关键字:Cookie 访问 客户端 | 更新日期: 2023-09-27 17:55:50

我在控制器上设置了一个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);
    }
});

这一直以空的形式出现?

有什么想法吗?

从客户端访问 Cookie

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

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

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

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

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

Response.SetCookie(loggedIn);