注销时删除某些cookie

时间:2011-01-05 12:03:44

标签: jquery python django cookies path

我正在使用一些cookie来存储某些部分的状态。 jQuery 用于设置Cookie。我需要有正确的路径才能删除cookie。这段代码有效,但我提供了路径的值。函数 len 返回0.如何获取带路径值的cookie?

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 :(得分:0)

你做不到。服务器仅接收cookie的名称和值。您只能在cookie创建期间设置其他cookie参数。之后,用户代理负责管理cookie。

设置不带路径的cookie会隐式使用当前的url路径作为cookie路径。

如果这不是问题,您可以为您的Cookie设置常量,通用路径(即/),然后使用它来删除它们。

答案 1 :(得分:0)

不幸的是,使用包含特定子目录的路径设置的cookie无法被该子目录之外的脚本访问。此外,正如cezio所提到的,你无论如何都无法真正删除用户计算机上的cookie。相反,通常的做法是将cookie的到期日期设置为过去的日期(如1/1/1900)。