这与其他地方(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";
关键是现在正确,但路径仍然是错误的,所以最后
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默认情况下会这样做
答案 0 :(得分:1)
默认情况下,Javascript cookie没有路径。正如您所写,在处理cookie时使用ASP.NET和Javascript时,这可能会导致不匹配。默认情况下,ASP.NET将cookie路径设置为/
(root)。因此 - 为了确保完全兼容性,当通过Javascript创建cookie时,您可以通过简单地使用:
document.cookie="Navigating=true;path=/";