2011-01-05 142 views
0

我正在使用一些cookie来存储某些部分的状态。 jQuery用于设置cookie。我需要有正确的路径才能删除cookie。这段代码有效,但我提供了路径的值。函数len返回0.如何获取具有路径值的cookie?注销时删除某些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 

回答

0

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

设置没有路径的cookie会隐式地使用当前的url路径作为cookie路径。

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

+0

路径无法设置为常量,因为事实证明它有用。我为cookie设置了expires参数,并且我不再为删除而烦恼。 – Seitaridis 2011-01-05 18:14:09

0

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