javascript和動(dòng)態(tài)頁(yè)無(wú)法獲取cookie過(guò)期的時(shí)間,過(guò)期時(shí)間由瀏覽器管理,javascript和動(dòng)態(tài)頁(yè)只能設(shè)置過(guò)期時(shí)間,無(wú)法通過(guò)document.cookie(javascript)或者Cookie.Expires(asp.net)屬性獲取到。
代碼如下:
<%@page language="C#" Debug="true"%>
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
HttpCookie hc = Request.Cookies["abc"];
if (hc != null)
{
Response.Write(hc.Expires);//0001-1-1 0:00:00
Response.End();
}
}
</script>
asp.net的cookie雖然有Expires屬性,但是Response.Write輸出Expires屬性得到的是0001-1-1 0:00:00(DateTime.MinValue),這個(gè)是由于瀏覽器并沒(méi)有發(fā)送cookie的過(guò)期時(shí)間給服務(wù)器,所以用DateTime.MinValue來(lái)填充cookie的Expires屬性。
一定要獲取過(guò)期時(shí)間,需要通過(guò)另外一個(gè)cookie值來(lái)記錄對(duì)應(yīng)cookie的過(guò)期時(shí)間。如下:
復(fù)制代碼 代碼如下:
<script>
var d = new Date();
d.setHours(d.getHours() + 1); //1小時(shí)候過(guò)期
document.cookie = 'testvalue=123;expires=' + d.toGMTString(); //存儲(chǔ)cookie值
document.cookie = 'testexp=' + escape(d.toLocaleString()) + ';expires=' + d.toGMTString(); //存儲(chǔ)cookie過(guò)期時(shí)間,要獲取testvalue這個(gè)cookie的過(guò)期時(shí)間,通過(guò)獲取testexp這個(gè)cookie來(lái)實(shí)現(xiàn)
</script>
更多信息請(qǐng)查看IT技術(shù)專欄