当前位置: 首页 > 知识库问答 >
问题:

从父级访问子域上设置的Cookie

公西运良
2023-03-14

我试图从父域(example.org)访问子域(small.example.org)上的cookie集,我想从页面中的一点Javascript来实现这一点。

首先,我要为域small设置一个cookie。实例组织

document.cookie = "name=Mike; domain=small.example.org"

当我加载<代码>小。实例org我可以成功地看到我刚刚设置的cookie。加载示例时。org我看不到任何来自small的cookies。实例org。也许并不奇怪。

所以我想我需要向子域发出请求,以便在主域中包含一些东西,一个脚本标签。

<script src="small.example.org/script.js"></script>

现在当我加载示例时。org通过对脚本标签的请求,并在浏览器中查看,我可以从small中看到cookie。实例org

但是当我试图使用document.cookie从Javascript访问它时,我什么也没得到。

这是预期的行为吗?我以为只有设置了HTTPOnly标志,才能从Javascript访问cookie。

有没有办法绕过这个?上面的例子非常接近我的实际用例场景,不幸的是,我不能玩太多的架构。

共有1个答案

公良鸿风
2023-03-14

这是预期的行为。

JavaScript只能访问cookie,如果cookie的是:

  • 与当前页面的主机名完全匹配
  • 当前页面主机名的子串

example.org无法读取small.example.org的cookie(尽管相反的情况并非如此)。

请注意,JavaScript的来源由运行JS的HTML文档的URL决定,而不是由加载JS的URL决定。

您可以选择:

  • 更改设置cookie时指定的
  • 在服务器上动态生成JS文件,并使用服务器端编程插入数据(浏览器在请求JS URL时会在HTTP请求头中发送cookie,因为域匹配)
 类似资料:
  • 我在父域(我无法控制)的路径中设置了一个cookie。但我在其中一个子域中运行了一个应用程序(我可以访问它)。如何访问针对父域设置的cookie? 例如,假设我有饼干: 应用程序正在foo上运行。酒吧实例com和cookie设置为。实例这是一个Java应用程序。我试图调试,但我只能看到为子域设置的cookie,而不是主域。 这是消息来源 此外,根据这个stackoverflow答案,也许浏览器没有

  • 我正在尝试访问在“MyClass”的@RequestMapping父级中定义的@PathVariables。简化的screnario: 此类是某种产品的基类,不应进行编辑。因此,我扩展了“父类”。在“MyClass”中,我想做如下操作: 我认为这是允许的(还没有测试),但我不知道如何获得所有已经用“ParentClass”定义的PathVariable。 非常感谢您的任何想法/RTFM参考。

  • 在应用程序中使用JavaFX,我有一个main.fxml文件,其中包含一些fxml子文件。 我想从子控制器访问Main.fxml的MainController类。 我试着用一个例子来解释得更好: MainFXML: 主控制器: ChildFXML:

  • 问题内容: 我已经使用设置了我的控制器 我有一个父/子嵌套控制器的场景。通过使用,我可以毫无问题地访问嵌套html中的父属性,但是我无法弄清楚如何从子控制器中访问父属性。 我试过注入$ scope然后使用,但这不起作用吗? 谁能提供建议? 问题答案: 如果您的HTML如下所示,则可以执行以下操作: 然后您可以按如下方式访问父范围 如果要从视图访问父控制器,则必须执行以下操作: 参见jsFiddle

  • 问题内容: 假设我们有一个包含私有实例变量的类。 现在,让我们有另一个类,其中。如果在中没有定义访问器方法,可以在访问变量中使用非静态方法吗? 顺便说一下,我在用Java工作。 问题答案: 不,不符合Java语言规范,第3版: 6.6.8示例:私有字段,方法和构造函数 私有类成员或构造函数只能在包含该成员或构造函数声明的顶级类(第7.6节)的主体内访问。它不是子类继承的。 但是不管这种语言限制如何

  • 问题内容: 如何从儿童的基类访问装饰器? 我以为(错误地)认为ffg。会工作: 该类工作正常,但随后我创建了一个继承自此的子类: 这甚至无法正确导入,更不用说运行了。@_deco未定义。尝试baseclass._deco会引发未绑定的方法_deco()错误,这并不奇怪。 任何想法如何做到这一点,我真的很想将装饰器封装在该类中,但是我对此想法并不满意,需要在基类和子类中对其进行调用。 问题答案: