javascript和動態頁無法獲取cookie過期的時間,過期時間由浏覽器管理,javascript和動態頁只能設置過期時間,無法通過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),這個是由於浏覽器並沒有發送cookie的過期時間給服務器,所以用DateTime.MinValue來填充cookie的Expires屬性。
一定要獲取過期時間,需要通過另外一個cookie值來記錄對應cookie的過期時間。如下:
代碼如下:
<script>
var d = new Date();
d.setHours(d.getHours() + 1); //1小時候過期
document.cookie = 'testvalue=123;expires=' + d.toGMTString(); //存儲cookie值
document.cookie = 'testexp=' + escape(d.toLocaleString()) + ';expires=' + d.toGMTString(); //存儲cookie過期時間,要獲取testvalue這個cookie的過期時間,通過獲取testexp這個cookie來實現
</script>