转自黎明互联:使用JS设置和读取cookie.
我们知道COOKIE保存在客户端,但是我们在设置和读取COOKIE的时候几乎无论使用什么语言编程都是在服务器端操作的,原理是通过HTTP的header传输信息。其实客户端的脚本语言JavaScript也是可以操作COOKIE的,默认情况下服务器端设置的COOKIE数据也是可以操作的,下面给出封装好的函数。
/*设置cookie*/
function setCookie(name,value,expires)
{
var exp = new Date();
exp.setTime(exp.getTime() + expires*1000);
document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
}
//获取cookie
function getCookie(name)
{
var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
if(arr != null) return unescape(arr[2]);
return false;
}
其实服务器端程序设置的COOKIE如果不希望COOKIE读取也是可以的,以PHP为例可以在使用setcookie的时候第七个参数即httponly设置为true,这样使用Js就无法读取了,并且更安全可以防止XSS窃取cookie,代码大致如下,更为详细的参数解释可以参考PHP手册。
setcookie("TestCookie", $value, time()+3600, "/~rasmus/", "example.com", 1,true);