我需要删除之前为父域设置的cookie,同时在父域的子域中浏览主机。
即,为example.com设置了一个cookie“xyz”,我试图使用Django后端在subdomain.example.com上删除它。
提供给视图的request.COOKIES除了来自subdomain.example.com的cookie之外不包含任何cookie,因此我不能只编写response.delete_cookie(...)来删除它。
可以在Python或Javascript中执行此类删除吗?
答案 0 :(得分:1)
Cookie可能是使用'domain'参数设置的。将cookie设置为可以从设置cookie的域的所有子域访问。
我不是蟒蛇人,但我对http协议的了解表明这可能是问题所在。
答案 1 :(得分:0)
即使是您无法阅读的Cookie,您也可以尝试拨打delete_cookie
。无论如何,Django都会输出相关的Set-Cookie
标题来删除cookie。当然,您传递给domain
的{{1}}和path
必须与您要删除的Cookie匹配。
但是,如果您无法读取cookie,则可能存在其他问题,这可能会阻止您将其删除。您确定父域中的cookie是使用delete_cookie
参数设置的吗?如果没有那么它将不会在子域中可见或删除,除非在IE浏览器中由于浏览器对非域指定的cookie的处理不当。