当 cookie 根本没有设置时,该文档如何能够检测到 cookie?

发布于 2024-12-06 01:46:32 字数 951 浏览 0 评论 0原文

这是一个使用 some html 文件设置 cookie 的脚本。

window.onload=init;

function init() {
var userName="";
if(document.cookie != "") {
    username=document.cookie.split("=")[1];
    document.getElementById("name_field").value = username;
}

document.getElementById("name_field").onblur = setCookie;
}

function setCookie() {
var exprDate = new Date();
exprDate.setMonth(exprDate.getMonth() + 6);

var username = document.getElementById("name_field").value;
document.cookie = "username=" + username + ";path=/;expires=" + exprDate.toGMTString();
}

这是另一个带有一些不同 html 文件的脚本(过去没有保存过 cookie),用于检查是否有与此文档一起保存的 cookie。

window.onload = initTest;

function initTest() {
if(document.cookie == "") alert("No,cookies stored !");
else alert("cookies found !");
}

令我惊讶的是,当我使用第二个脚本运行第二个 html 文件时,结果是 找到 cookie 这是为什么?当该文档未保存 cookie 时,怎么会 document.cookie != ""

This is one script that sets the cookie with some html file.

window.onload=init;

function init() {
var userName="";
if(document.cookie != "") {
    username=document.cookie.split("=")[1];
    document.getElementById("name_field").value = username;
}

document.getElementById("name_field").onblur = setCookie;
}

function setCookie() {
var exprDate = new Date();
exprDate.setMonth(exprDate.getMonth() + 6);

var username = document.getElementById("name_field").value;
document.cookie = "username=" + username + ";path=/;expires=" + exprDate.toGMTString();
}

This is another script with some different html file, (that had not saved a cookie in the past) that checks if there is a cookie saved with this document.

window.onload = initTest;

function initTest() {
if(document.cookie == "") alert("No,cookies stored !");
else alert("cookies found !");
}

To my surprise the result when i run the 2nd html file with the second script,is cookies found Why is that ? When that document has not saved a cookie then how come document.cookie != "" ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

莫相离 2024-12-13 01:46:32

Cookie 是按域和/或路径设置的。

示例:

  • http://www.example.com/foo.html Cookie: x=x; max-age=3600;http://www.example.com/* 上可见,但在 http://other.example.com/ 上不可见代码>
  • http://www.example.com/foo.html Cookie: x=x;最大年龄=3600; 中可见
  • domain=.example.com 在 http://*.example.com/*http://example.com/* https 协议 -仅:Cookie: x=x;最大年龄=3600; secure
  • 路径可以更改为当前路径,或任何父目录。默认路径是当前目录。例如:x=x;最大年龄=3600;路径=/

Cookies are set per domain and/or path.

Examples:

  • http://www.example.com/foo.html Cookie: x=x; max-age=3600; is visible at http://www.example.com/*, but not at http://other.example.com/
  • http://www.example.com/foo.html Cookie: x=x; max-age=3600; domain=.example.com is visible at http://*.example.com/* and http://example.com/*
  • https protocols-only: Cookie: x=x; max-age=3600; secure
  • The path can be changed to the current path, or any parent directory. The default path is the current directory. E.g.: x=x; max-age=3600; path=/
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文