javascript - 我还能在本地机器上保存持久性 cookie 吗?
问题描述
在 Internet file:///C:/Users/etc 之外,新的 Firefox 仅针对当前会话读取和写入 JavaScript cookie。关闭浏览器后,我的旧 Firefox 版本保存在其 cookie 目录中的数据似乎消失了。离线,我的 Chrome 浏览器根本不允许本地 cookie。还有一种方法可以使用 document.cookies 在本地机器上获取数据持久性吗?它是被禁止的还是另一种首选方式?这里的安全问题是什么?
解决方案
Cookie 和单独的 Web 存储(localStorage
和sessionStorage
)仅适用于资源,http:
而https:
不是file:
资源。因此,如果您正在通过file:
URL(file:///home/user3057382/www/foo.html
等)查看您的页面,如果 Firefox 在会话期间存储由您的 JavaScript 代码设置的 cookie,那么 Firefox 会更加努力,因为 cookie(特别是)完全是 HTTP 的东西。
对于本地开发,最好在本地运行 Web 服务器并通过http:
或查看您的页面和其他资源https:
(您可以获得仅限开发的本地 SSL 证书)。Cookies(和网络存储)将在您的页面上正常工作。
大多数体面的 IDE 还能够使用其内置的本地 Web 服务器“运行”您的项目,因此您不必自己安装和配置。Visual Studio Code、JetBrains 等当然可以。
推荐阅读
- python - Python:相互依赖的类
- kdb - 在 KDB 中加载两个分区表时列值发生变化 (q)
- angular - 克隆离子项目后无法服务
- r - 在 R 中查找所选变量的平均值
- angular - Angular 将 html 属性(即样式/类)从父级传递给子级
- ubuntu - CALDB 的问题——更好的数据处理
- python - Django查询集过滤器基于孩子的数量
- javascript - 如何在地图上的google api中添加一个按钮
- stackexchange-api - 如何在 Stack Exchange API 中使用 fromdate 和 todate 参数?
- amazon-web-services - 特定天后使用 Lambda 排空 SQS 队列