无法从Django中的另一个(父)域获取cookie

时间:2010-01-11 16:26:35

标签: javascript python django cookies

我需要删除之前为父域设置的cookie,同时在父域的子域中浏览主机。

即,为example.com设置了一个cookie“xyz”,我试图使用Django后端在subdomain.example.com上删除它。

提供给视图的request.COOKIES除了来自subdomain.example.com的cookie之外不包含任何cookie,因此我不能只编写response.delete_cookie(...)来删除它。

可以在Python或Javascript中执行此类删除吗?

2 个答案:

答案 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的处理不当。