javascript实现获取cookie过期时间的变通方法
javascript和动态页无法获取cookie过期的时间,过期时间由浏览器管理,javascript和动态页只能设置过期时间,无法通过document.cookie(javascript)或者Cookie.Expires(asp.net)属性获取到。
<%@pagelanguage="C#"Debug="true"%> <scriptrunat="server"> protectedvoidPage_Load(objectsender,EventArgse) { HttpCookiehc=Request.Cookies["abc"]; if(hc!=null) { Response.Write(hc.Expires);//0001-1-10:00:00 Response.End(); } } </script>
asp.net的cookie虽然有Expires属性,但是Response.Write输出Expires属性得到的是0001-1-10:00:00(DateTime.MinValue),这个是由于浏览器并没有发送cookie的过期时间给服务器,所以用DateTime.MinValue来填充cookie的Expires属性。
一定要获取过期时间,需要通过另外一个cookie值来记录对应cookie的过期时间。如下:
<script> vard=newDate(); 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>