js创建cookie时获取一级域名设置domain解决跨域问题

解决子域和主域的cookie问题:
function GetCookieDomain() {
 var host = location.hostname;
 var ip = /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/;
 if (ip.test(host) === true || host === 'localhost') return host;
 var regex = /([^]*).*/;
 var match = host.match(regex);
 if (typeof match !== "undefined" && null !== match) host = match[1];
 if (typeof host !== "undefined" && null !== host) {
  var strAry = host.split(".");
  if (strAry.length > 1) {
   host = strAry[strAry.length - 2] + "." + strAry[strAry.length - 1];
  }
 }
 return '.' + host;
}

支持本地环境(仅判断localhost)、host为ip地址、中文域名、常规域名。如下图所示:
在这里插入图片描述
调用很简单,写了个示例:

document.cookie = cname + "=" + cvalue + "; expires=" + expires + "; domain=" + GetCookieDomain() + "; path=/";
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值