如何为具有不同域的iframe设置Cookie?

时间:2019-01-03 22:40:07

标签: java cookies iframe cross-domain same-origin-policy

我需要构建一个包含iframe的页面,该iframe依次显示来自AWS服务的页面。构造包含此类iframe的父页面没有问题。我需要从父页面访问AWS页面的DOM,但是Same Domain Policy阻止我执行此操作,因此我不得不编写代码以用作获取和返回AWS服务页面HTML的代理。因此,我的服务器返回了一个父页面,其中包含一个iframe,该iframe依次从我的服务器请求另一个页面,即AWS服务页面HTML。由于I框架HTML与父页面来自同一域,因此父框架应该能够访问I框架Dom。

我遇到的问题是AWS服务页面需要cookie。当父页面iframe从我的服务器请求AWS服务页面HTML时,我无法返回具有指向AWS的域的cookie。如果我返回的HTML中包含未指定域的cookie,则cookie将在浏览器中创建,但它们与我的服务器的域相关联,将不起作用。如果将cookie域设置为AWS域,则cookie创建失败。在Firefox和Chrome调试器中,我都检查了网络流量,并看到cookie正在传输到浏览器,但是如果域是用于AWS的,则不会创建cookie。

研究表明,这是与同一域策略有关的已知问题。如果我正确理解要设置的第3方Cookie,那么我(至少出于测试目的)应确保Firefox和Chrome浏览器都允许第三方Cookie,但这仍然失败。我发现的有关如何处理此问题的唯一建议是,我必须同时控制两台服务器,当然也无法访问AWS服务器。

如何创建这些cookie,以便iframes AWS服务页面可以访问它们?

谢谢。

0 个答案:

没有答案