Javascript document.cookie 总是返回空字符串

标签 javascript cookies

我在客户端 javascript 设置 cookie 时遇到了这个真正奇怪的问题。我目前正在开发一个 1 页的小演示,以使用 cookie 来存储一些“首选项”。请注意,我不能为此演示或任何第 3 方 jQuery 插件使用服务器端语言。

所以我写了一个 javascript 对象来设置 cookie:

var cookie = {
  set: function (name,value,exdays) {

    var exdate = new Date();
    exdate.setDate(exdate.getDate() + exdays);
    var value = escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
    document.cookie=name + "=" + value;
    console.log(document.cookie);
  }
}

cookie.set('foo','bar',2);
console.log(document.cookie);

它只返回一个空字符串。我已经进入 Chrome 控制台,看看我是否可以通过直接修改 document.cookie

来做到这一点
> document.cookie = "foo=bar";
"foo=bar"
> document.cookie
""

如何通过客户端 javascript 设置 cookie?

编辑:我没有处于隐身模式并且启用了 cookie。

最佳答案

无法从 Javascript 访问 HttpOnly cookie, session cookie 通常设置为 HttpOnly cookie。另请参阅此 StackOverflow 问题: How to read a secure cookie using JavaScript

所以...检查您要读取的 cookie 是否设置了“HttpOnly”标志...如果是,您就知道罪魁祸首了。 这不是错误,而是功能!

关于Javascript document.cookie 总是返回空字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15914744/

相关文章:

javascript - 由于浏览历史设置,angularjs http.get 调用未在 ie10 中触发

php - 如何使用 Codeigniter session 库创建 "remember me checkbox"?

javascript - 如何阻止或删除第三方 cookie

ruby-on-rails - Rails - 在 Controller 中存储 cookie 并从 Javascript、Jquery 获取

javascript - 单击 <div>,焦点输入字段 - 如何使用 React/Redux 执行此操作?

javascript - 用于捕获 Universal Analytics 链接点击事件的 Jquery 脚本

javascript - 用 unicode 替换\n 以正确显示 html 中的新行

javascript - Angular 数据绑定(bind) - ng-book 声称您应该通过对象属性进行绑定(bind)。为什么?

javascript - 让用户通过 javascript 访问 cookie 是一个安全问题吗

node.js - 重定向后 Cookie 消失