首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从父域访问子域上设置的cookie

从父域访问子域上设置的cookie
EN

Stack Overflow用户
提问于 2018-04-26 18:28:34
回答 1查看 297关注 0票数 1

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

首先,我正在为域small.example.org设置一个cookie

代码语言:javascript
复制
document.cookie = "name=Mike; domain=small.example.org"

当我加载small.example.org时,我可以成功地看到我刚刚设置的cookie。加载example.org时,我无法从small.example.org中看到任何cookies。也许没那么奇怪。

因此,我想我需要向子域提出一个请求,以便在主域上包含一些内容,一个脚本标记。

代码语言:javascript
复制
<script src="small.example.org/script.js"></script>

现在,当我将请求加载到脚本标记并查看浏览器时,我可以从example.org中看到cookie。

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

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

有办法绕过这件事吗?上面的示例非常接近我的实际用例场景,不幸的是,我不能过多地使用该体系结构。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-26 18:32:39

这是预期的行为。

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

  • 与当前页的主机名完全匹配的
  • 当前页主机名的子字符串。

example.org不能读取small.example.org的cookie(尽管相反不是真的)。

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

你可以:

  • 更改在设置cookie时指定的domain
  • 在服务器上动态生成JS文件并使用服务器端编程插入数据(浏览器将在请求JS URL时在HTTP请求头中发送cookie,因为域匹配)。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50049771

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档