2016-05-09 152 views
0

在經典的ASP中,當我使用Response.Cookies(「data1」)=「value1」設置cookie時,則使用 我可以使用此cookie來讀取Request.Cookies(「data1」)在同一頁Response.Cookies和Response.AddHeader「Set-Cookie」之間的區別

但是,當我使用語法Response.AddHeader「Set-Cookie」,「data2 = value2」,然後 我無法使用請求讀取此cookie。 Cookie(「data2」)在同一頁面上。

那麼究竟是什麼設置cookie的,如果我想使用第二語法的高度重視和讀取cookie的這兩個語法之間的區別,read的樣子

+0

這是因爲'Response.AddHeader'響應*過程中添加的報頭(數據返回給客戶端)*而'Response.Cookies'預構建在發送響應之前收集,然後將'設置cookie' HTTP頭髮送響應時,這意味着直到發送響應有時間修改cookie集合。 – Lankymart

回答

1

這兩種方法設置HTTP頭

set-cookie 

但一個關鍵的區別。

Response.Cookies是預先構建的集合,然後當響應準備好發送時,會創建HTTP標頭set-cookie。這意味着,在指定了Cookie集合頁面的生命,值可用來操作,只要你想盡可能多。

Response.AddHeader()設置HTTP標頭set-cookie當響應發送回客戶端,它沒有任何的關聯,在所有Response.Cookies()和設置

Response.AddHeader("set-cookie", "...") 

不會神奇填充Response.Cookies集合。填充Cookies集合,而不使用Response.Cookies()唯一的辦法就是讓往返於服務器Response.AddHeader()已經設置之後。