我有一个小演示页面来显示网站根据不同用户 cookie 的效果。然后我将click()
一些功能设置div
为使用插件 jquery.cookie.js,它提供了 2 个功能:
$.cookie('name', 'val')
$.removeCookie('name')
在我打电话后$.removeCookie()
,我打电话window.open('new page')
是因为我需要去内容。但 httpliveheader 总是显示它没有删除有问题的 cookie。
我有一个小演示页面来显示网站根据不同用户 cookie 的效果。然后我将click()
一些功能设置div
为使用插件 jquery.cookie.js,它提供了 2 个功能:
$.cookie('name', 'val')
$.removeCookie('name')
在我打电话后$.removeCookie()
,我打电话window.open('new page')
是因为我需要去内容。但 httpliveheader 总是显示它没有删除有问题的 cookie。
OK,我找到了,是因为我的后端代码和前端JS设置的cookie路径不同。
我的 java spring MVC 控制器在我刚刚做的代码中有 /MyPath/Blah/ 的访问路径
httpServletResponse.addCookie(new Cookie("something", "something"));
结果默认为代码所在的路径,即 /MyPath/Blah/
但是 JS 设置了 $.cookie("something", "somevalue") 之类的东西,它进入了根目录。这就是为什么我在 httpLiveHeader 转储中看到 2 个不同的值。不幸的是,路径是由浏览器控制的,所以它不会出现在 liveheader 转储中。我是在检查了 mozilla 中的“删除 cookie”窗口后才发现的
//例如 :
document.cookie = "cookie_name=" + encodeURIComponent(cookie_value) +
"; expires=" + expires.toGMTString() +
"; path=/";
你需要设置PATH。