getUUid = (len: any, radix: any) => {
var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('');
var uuid = [], i;
radix = radix || chars.length;
if (len) {
// Compact form
for (i = 0; i < len; i++) uuid[i] = chars[0 | Math.random() * radix];
} else {
// rfc4122, version 4 form
var r;
// rfc4122 requires these characters
uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-';
uuid[14] = '4';
// Fill in random data. At i==19 set the high bits of clock sequence as
// per rfc4122, sec. 4.1.5
for (i = 0; i < 36; i++) {
if (!uuid[i]) {
r = 0 | Math.random() * 16;
uuid[i] = chars[(i == 19) ? (r & 0x3) | 0x8 : r];
}
}
}
return uuid.join('');
}
/**
* 设置cookie time等于0 为不设置过期时间一次性会话 time>0设置过期时间天数
*/
setCookie = (name: string, value: string, time: number) => {
if (time == 0) {
// 对 cookie 值进行编码以转义其中的分号、逗号和空格
var cookie = name + "=" + encodeURIComponent(value);
document.cookie = cookie;
}
if (time > 0) {
var now = new Date();
console.log("1 " + now)
//设置时间
now.setMinutes(now.getMinutes() + time)
console.log("2 " + now)
var cookie = name + "=" + encodeURIComponent(value) + ';expires=' + now.toUTCString();
alert(cookie)
document.cookie = cookie;
}
}
getCookie = (cookieName: string) => {
var cookie = "";
// 拆分 cookie 字符串
var cookieArr = document.cookie.split(";");
// 循环遍历数组元素
for (var i = 0; i < cookieArr.length; i++) {
var cookiePair = cookieArr[i].split("=");
/* 删除 cookie 名称开头的空白并将其与给定字符串进行比较 */
if (cookieName == cookiePair[0].trim()) {
// 解码cookie值并返回
cookie = decodeURIComponent(cookiePair[1]);
}
}
return cookie;
}
使用:
var disposableSeoCookie = this.getCookie("disposableSeoCookie");//一次性cookie
var sevenDaysSeoCookies = this.getCookie("sevenDaysSeoCookies");//7天cookie
// @ts-ignore
if (disposableSeoCookie == "" || disposableSeoCookie == undefined) {
this.setCookie("disposableSeoCookie", this.getUUid(16, 16), 0);//设置一次性cookie
}
// @ts-ignore
if (sevenDaysSeoCookies == "" || sevenDaysSeoCookies == undefined) {
this.setCookie("sevenDaysSeoCookies", this.getUUid(16, 16), 10080);//设置7天性cookie
}
后台读取cookie:
private String getCookie(String cookieName) {
Cookie[] cookies = getRequest().getCookies();
String strCookies= "";
for (Cookie cookie : cookies) {
if (cookieName.equals(cookie.getName())) {
try {
strCookies= URLDecoder.decode(cookie.getValue(), "utf-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
}
return strCookies;
}