注销时删除特定的cookie
我在用一些 cookies 来保存某些部分的状态。这里用jQuery 来设置这些 cookies。为了删除 cookie,我需要正确的路径。这个代码是可以工作的,但我给了路径的值。函数len 返回的是 0。我该怎么获取带有路径值的 cookies 呢?
def mylogout(request, next_page=None, template_name=None):
response = render_to_response(template_name,{
}, context_instance = RequestContext(request))
logout(request)
print len(response.cookies.items())
response.delete_cookie('section_body_1', path='/some/url/data/edit/48/')
response.delete_cookie('section_body_2', path='/some/url/data/edit/48/')
response.delete_cookie('section_body_3', path='/some/url/data/edit/48/')
return response
2 个回答
0
很遗憾,如果你设置的cookie路径包含某个特定的子目录,那么在这个子目录外的脚本是无法访问这些cookie的。此外,正如cezio提到的,你其实无法直接删除用户电脑上的cookie。一般的做法是把cookie的过期时间设置为一个过去的日期(比如1900年1月1日),这样就相当于让这个cookie失效了。
1
你不能这样做。服务器只会收到cookie的名称和值。在创建cookie的时候,你可以设置一些额外的参数,但之后就由用户的浏览器来管理这些cookie了。
如果你不指定路径,cookie会默认使用当前网页的路径作为它的路径。
如果这不是问题的话,你可以给你的cookie设置一个固定的、通用的路径,比如说 /
,然后你就可以用这个路径来删除这些cookie。