2013-11-01 79 views
0

我有一个小小的演示页面,根据不同的用户cookie显示网站的效果。 然后,我设置的一些divclick()功能,使用它提供2个功能插件jquery.cookie.js:我叫$.removeCookie()使用javascript/jQuery删除cookie

$.cookie('name', 'val') 
$.removeCookie('name') 

后,我打电话window.open('new page'),因为我需要去的内容。但httpliveheader总是显示它并没有删除有问题的cookie。

+0

在'$ .removeCookie'后面加入一个警告,以确保它被调用时没有任何错误。 –

+0

另请参阅:http://stackoverflow.com/questions/3671659/jquery-delete-cookies –

+2

你能提供你的代码和/或链接到JSFiddle吗? –

回答

-1

//例如:

document.cookie = "cookie_name=" + encodeURIComponent(cookie_value) + 

          "; expires=" + expires.toGMTString() + 

          "; path=/"; 

需要设置PATH。

+0

路径在Cookie中是可选的https://developer.mozilla.org/en-US/docs/Web/API/document.cookie另外OP是使用jQuery cookie插件,知道如果你不设置路径如何处理它 – charlietfl

+0

我知道,你不能使用jQuery cookie,需要重写。你可以看看这里http://www.quirksmode.org/js /cookies.html,关于cookie中的路径 – Arnold

+0

确定你可以... OP只是没有正确使用它 – charlietfl

0

好的,我发现它,这是因为我的后端代码和前端JS所设置的Cookie处于不同的路径。

我的Java Spring MVC的控制器具有的/ mypath中/布拉赫/代码我只是做了

httpServletResponse.addCookie(新的Cookie( “东西”, “东西”))的访问路径;

这原来默认的路径,其中的代码坐镇下,即/ mypath中/布拉赫/

但JS设置类似$ .cookie(“东西”,“someValue中”),它去根。这就是为什么我在httpLiveHeader转储中看到2个不同的值。不幸的是,路径的东西是由浏览器控制的,所以它不会显示在liveheader转储上。在我检查了mozilla中的“删除cookie”窗口后,我才发现这一点。