javascript - 将 cookie 设置为 iframe src

标签 javascript jquery html iframe cookies

我有一个加载外部页面的 iframe,需要记录该页面以显示我想要的内容。实际上,如果我以正常方式设置 iframe,iframe 会加载外部域登录页面。我实际拥有的是这样的:

我需要做的是为该来源设置一些 cookie,以假装我“登录”的外部域。可以做到的(或者我认为可以做到的)是将登录响应给我的 cookie 设置为请求。

我实际上能够获取这些 cookie,但不知道如何将它们设置为来自 iframe 的 URL。

想法?

谢谢!

最佳答案

如果 iframe 位于单独的域中,您无法从其他域通过 javascript 直接访问它,因此您将无法使用 javascript 将 cookie 从域 1 直接传输到域 2。

如果您控制两个域中的代码,则有一些解决方法。这是一种使用单一位置登录的方法,登录凭据通过 URL 参数传输:Cross Domain Login - How to login a user automatically when transferred from one domain to another

您可以想象使用 URL 传输机制,方法是登录第一个域,然后在 iframe 中设置 .src URL 以在 URL 中包含登录凭据。当第二个域加载到 iframe 中时,它会在 URL 中看到登录凭据,获取它,将其转换为它写入自身的 cookie 值并刷新自身(因此现在看起来已登录)。您显然需要在两个域中控制 javascript 才能使用这些技术中的任何一种,因为一个域的 javascript 不能直接将 cookie 放入另一个域。

两个协作域可以通信的另一种方式是使用 window.postMessage(),这样登录凭据就可以发送到 iframe 窗口。它的 javascript 必须接收消息并将其转换为 cookie,然后刷新它的页面,以便服务器在第二个域上看到登录 cookie。

关于javascript - 将 cookie 设置为 iframe src,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22866080/

相关文章:

html - 没有通用选择器就无法摆脱顶部填充

html - Chrome DevTools 触摸仿真不工作

javascript - 从 AngularJS 中的 Controller 调用服务

javascript - if/else 语句不适用于页面加载

Javascript 到 csv 导出编码问题

Javascript 中的 Java int 运算

javascript - JSON 编码 HTML 列表 - 所有子项都会显示在所有父项上

html - 需要 960 网格系统的帮助

javascript - 自动选择<选项>添加到<选择>

jQuery 未按顺序运行