2011-01-05 64 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)。