在本地html文件中使用JavaScript设置Cookie

Osc*_*ros 35 javascript cookies cross-browser local-files

我有以下目录树:

+ folder1
|--- folder2
|------ page1.html
|--- page2.html
Run Code Online (Sandbox Code Playgroud)

如果我在page1.html使用JavaScript时设置了一些cookie ,那么该cookie 使用的路径是什么?

编辑:
让我更好地解释一下.我正在使用本地文件.page1.html正在/home/user/.../folder1/folder2/page1.html使用HTTP服务器访问而不是通过客户端计算机访问.

只是为了澄清:
似乎某些浏览器(如Chrome)在使用时不存储cookie file:///,但Firefox和Internet Explorer都可以.

lon*_*day 20

MDC页面document.cookie:

如果未指定,[ path参数]默认为当前文档位置的当前路径.

所以在你的情况下,它会/folder1/folder2/.


我最初没有看到你在问题标题中指定了"本地" - 在我写答案时不确定这是否已更新.使用file:///协议浏览时不会设置Cookie ,具体取决于浏览器.

  • 是的,这似乎是事情.IE和Firefox使用`file:///`设置cookie但Chrome不这样做:)无论如何,我认为你的答案对于IE和Firefox是正确的. (3认同)

Ale*_*yne 16

浏览器不会为file://url协议存储cookie ,它会简单而无声地设置任何内容.因此,如果这是真正的"本地"而不是域名,那么您可能会遇到问题.

  • 看来他们这样做了。我在`page1.html`中设置了一个cookie,然后关闭浏览器,再次打开页面(当然是在本地),然后我请求那个cookie,它仍然存在:? (2认同)
  • @Oscar 我认为这是跨浏览器的事情。与 Firefox 或 Internet Explorer 相比,Chrome 对同源策略的解释略有不同,尤其是在涉及 `file:///` 协议时。 (2认同)

Car*_*oui 9

如果您使用的是Mac,则可以关闭Chrome并重新启动它,如下所示:

/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --enable-file-cookies
Run Code Online (Sandbox Code Playgroud)

然后,您就可以在本地文件上设置cookie.


cra*_*pty 5

为chrome设置--enable-file-cookies它应该适合你.此外,还有一些功能,你必须设置"接受所有cookie"也可以工作,但如果你这样做,请确保你在返回网络之前退回.

  • 怎么设置`--enable-file-cookies`它就是`chrome:// flags`的一些地方? (2认同)