Javascript asp.net,正在删除cookie

Javascript asp.net,正在删除cookie,javascript,asp.net,cookies,Javascript,Asp.net,Cookies,这与其他地方的答案(afaik)不同,我正在记录我的答案以供将来使用,但我也有兴趣了解更多 我在客户端上用javascript创建了一个cookie,如下所示 document.cookie = "Navigating=true"; 我已经尝试在服务器上通过将到期日期设置为 string cookieName = "Navigating"; Response.Cookies.Remove(cookieName); HttpCookie myCookie = ne

这与其他地方的答案(afaik)不同,我正在记录我的答案以供将来使用,但我也有兴趣了解更多

我在客户端上用javascript创建了一个cookie,如下所示

document.cookie = "Navigating=true";
我已经尝试在服务器上通过将到期日期设置为

string cookieName = "Navigating";               
Response.Cookies.Remove(cookieName);

HttpCookie myCookie = new HttpCookie(cookieName);
myCookie.Expires = DateTime.Now.AddDays(-2);
Response.Cookies.Add(myCookie);
这不起作用,这是网络追踪

请注意,名称是错误的,它是cookie11(我已经从屏幕截图中删除了其他cookie,它是第11个cookie)

现在我将cookie的值设置为

myCookie.Value = "true";
再试一次,还是不行,截图2

钥匙现在是对的,但路径仍然是错的,所以最后

        if (Request.Cookies[cookieName] != null)
        {
            //Response.Cookies.Remove(cookieName);

            HttpCookie myCookie = new HttpCookie(cookieName);
            myCookie.Expires = DateTime.Now.AddDays(-2);
            myCookie.Value = "true";
            myCookie.Path = "";
            Response.Cookies.Add(myCookie);
        }
现在服务器正确地删除了cookie


这是可行的,所以毫无疑问,但我想知道为什么javascript cookie没有路径,而asp.net cookie默认有路径

javascript cookie默认没有路径。正如您所写的,在处理cookie时使用ASP.NET和Javascript时,这可能会导致不匹配。默认情况下,ASP.NET将cookie路径设置为
/
(根)。因此-为了确保完全兼容,当通过Javascript创建cookie时,您可以通过使用以下命令设置路径:

document.cookie="Navigating=true;path=/";

为了拯救谷歌用户,我为什么要设置路径?嗨@tony,我详细阐述了我的答案。希望它能让事情变得更清楚。我想了更多类似的事情,但这可以作为我自己的参考。我还尝试在点击超链接时创建cookie,asp.net无法看到它。当我添加了一个路径“/”时,它就这样做了。之前,我通过单击按钮然后重新加载页面来创建cookie