不同页面上的相同cookie(cookie路径)

时间:2012-11-11 10:30:08

标签: javascript cookies browser override

我有一个应用程序,我需要在cookie中存储一些信息。我有一个索引页面并将一些信息放入cookie(例如,一些变量名称)。索引页面cookie具有路径/Main/。在另一个页面中,我需要阅读此cookie,如有必要,请修改它。但另一个页面cookie路径是/Main/info/。浏览器只是创建一个新的cookie,但我需要覆盖它并在所有页面上使用与路径/Main/相同的cookie。 我怎么能这样做?

3 个答案:

答案 0 :(得分:2)

添加路径= /; 或在创建Cookie时指定路径。这将阻止浏览器为每个域创建重复的cookie。

对于其中一条评论,如果您查看Google Chrome以及它如何显示Cookie,它会显示路径。如果您使用相同的cookie名称而未指定路径,则会为每个cookie创建一个cookie。

注意:Internet Explorer不会执行相同的操作,每个域都有单个文本文件。

答案 1 :(得分:1)

您应该为所有SET-COOKIE命令定义一个路径,而不依赖于所请求资源的子路径(例如path=/Main)。通常,您应该使用尽可能长的路径...(但您必须使用相同的cookie获取所有资源的父路径。)

只应使用Root(/),如果您的应用程序拥有完整的域,并且具有不同顶级路径的资源需要cookie(例如/main/.../secondary/.../unimportant/...

为什么:

  • 安全原因
  • 防止对同一域中的其他应用程序产生副作用

答案 2 :(得分:0)

第二页需要将cookie路径显式设置为“/ Main”。

document.cookie = 'name=value; path=/Main/';