跨子域无法读取cookie (owa_cookie)

3
在我的生产环境中,我的前端在a.example.com上,我的后端在b.example.com上:
我正在使用javascript在.example.com域中的路径'/'创建一个cookie,以便从任何子域读取它。
当我尝试使用owa_cookie从Oracle读取来自b.example.com域的cookie时,它会出现no_data_found错误。
我查看了浏览器中cookie的内容,并且可以看到它:
域.example.com
路径/
在我的测试环境中,我的前端和后端都在同一子域b.example.com上。在这里,Oracle应用服务器能够使用完全相同的代码读取cookie。
我做错了什么?根据我的阅读,我只需要将cookie存储在.example.com中,就可以从任何子域读取它。但它仍然无法正常工作。

1
你有为cookie设置任何过期时间吗?还是它们严格是会话cookie? - Ates Goral
1
使用类似 Tamper Data 的工具来检查 cookie 是否真正发送到服务器。 - h3xStream
是的,Ates。在调用Oracle httpservice之前,我将cookie设置为3分钟后过期。但是当我的服务返回无法读取cookie的消息时,我可以在Firefox中单击“显示cookie”时看到该cookie。 - Zesty
谢谢,h3xstream。好主意。我会尝试并找出结果。 - Zesty
h3xstream,我有点困惑...我应该检查什么?当调用Oracle httpservice时,Tamper Data弹出窗口会显示cookie内容以及传递给服务的参数。但这只告诉我javascript已经成功写入了cookie,而不是Oracle httpservice是否能够读取它,对吗?我问这个问题的原因是即使在调用其他不读取cookie的Oracle服务之后,cookie内容也可以在Tamper Data弹出窗口中看到。 - Zesty
谢谢你们两个,特别是h3xstream。当我仔细查看cookie时,我注意到名称略有不同:)(这是由于测试引起的)。最终得出了一个合乎逻辑的结果。 - Zesty
1个回答

0
如果您想在子域之间编写/读取cookie,只需将其保存在.example.com中即可。问题在于名称不匹配。感谢大家。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接