【问题标题】:Delete certain cookies on logout注销时删除某些 cookie
【发布时间】:2011-01-05 21:12:11
【问题描述】:

我正在使用一些 cookie 来存储某些部分的状态。 jQuery 用于设置cookies。我需要有正确的路径才能删除 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

【问题讨论】:

    标签: jquery python django cookies path


    【解决方案1】:

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

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

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

    【讨论】:

    • 无法将路径设置为常量,因为事实证明这样做很有用。我已经为 cookie 设置了 expires 参数,我不再为删除而烦恼。
    【解决方案2】:

    很遗憾,使用包含特定子目录的路径设置的 cookie 无法被该子目录之外的脚本访问。此外,正如 cezio 所提到的,您实际上无法删除用户计算机上的 cookie。相反,一般做法是将 cookie 的过期日期设置为过去的日期(如 1900 年 1 月 1 日)。

    【讨论】:

      猜你喜欢
      • 2012-10-01
      • 2016-06-03
      • 2019-03-16
      • 2015-03-12
      • 1970-01-01
      • 2013-10-26
      • 1970-01-01
      • 2021-07-07
      • 2012-10-16
      相关资源
      最近更新 更多