cookie的几种常见属性:
document.cookie=”key=value;expires=失效时间;path=路径;domain=域名;secure;(secure表安全级别)
/**
* @name cookie
* @date 2018-04-12
*/
//写入cookie
setCookie("name",admin,'m40');
//读取cookie
getCookie("name");
//删除cookie
delCookie("name");
//写cookies
//这个的cookieIp 是域名
function setCookie(name,value,time){
var strsec = getsec(time);
var exp = new Date();
exp.setTime(exp.getTime() + strsec*1);
document.cookie = name + "="+ escape (value) + ";path=/;domain=" + cookieIp + ";expires=" + exp.toGMTString();
}
//取cookie
function getCookie(name){
var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
if(arr=document.cookie.match(reg))
return unescape(arr[2]);
else
return null;
}
//删除cookie
function delCookie(name) {
var exp = new Date();
exp.setTime(exp.getTime() - 1);
var cval=getCookie(name);
if(cval!=null)
document.cookie = name + "="+ escape (cval) + ";path=/;domain=" + cookieIp + ";expires=" + exp.toGMTString();
}
//过期时间
function getsec(str){
var str1=str.substring(1,str.length)*1;
var str2=str.substring(0,1);
if (str2=="s"){
return str1*1000;
}else if (str2=="m"){
return str1*60*1000;
}else if (str2=="h"){
return str1*60*60*1000;
}else if (str2=="d"){
return str1*24*60*60*1000;
}
}
关于跨域请求带cookie问题
1.首先先解决跨域
2.domain 主域设置上
//jquery:
$.ajax({
...
xhrFields:{
withCredentials: true //前端设置是否携带cookie
},
crossDomain: true, //会让请求头中包含跨域的额外信息,但不会含cookie
...
})
//angular
$http.post(url,{withCredentials:true,...});
//或者
$http({withCredentials:true,...}).post(...);
//或者
.config(function($httpProvider){
$httpProvider.defaults.withCredentials = true;
})