基础概念:
blog.example.com
中,example.com
是主域名,而blog
则是二级域名。基础概念:
当设置Cookie时,可以指定其作用域,这包括域名和路径。对于二级域名,如果Cookie的作用域设置为顶级域名(如.example.com
),则该Cookie可以被该顶级域名下的所有二级域名共享。
问题:为什么二级域名无法访问顶级域名设置的Cookie?
原因:
.example.com
(注意前面的点),这样它才能被所有子域名共享。解决方法:
SameSite=None; Secure
来允许跨站请求携带Cookie(但需确保HTTPS连接)。以下是一个简单的JavaScript示例,展示如何设置和读取Cookie:
// 设置Cookie
function setCookie(name, value, days) {
var expires = "";
if (days) {
var date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
expires = "; expires=" + date.toUTCString();
}
document.cookie = name + "=" + (value || "") + expires + "; path=/; domain=.example.com";
}
// 读取Cookie
function getCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') c = c.substring(1, c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
}
return null;
}
请注意,以上代码和参考链接仅供参考,实际应用中可能需要根据具体情况进行调整。
领取专属 10元无门槛券
手把手带您无忧上云