将Cookie设置为iframe src

Fab*_*mer 3 html javascript cookies iframe jquery

我有一个加载外部页面的iframe,需要对其进行记录才能显示我想要的内容。实际上,如果我以常规方式设置iframe,则iframe会加载“外部域登录”页面。我实际上拥有的是这样的:

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

我实际上能够获得这些cookie,但是不知道如何将其设置为iframe中的URL。

有什么想法吗?

谢谢!

jfr*_*d00 5

如果iframe位于单独的域中,则您将无法通过javascript直接从其他域中访问它,因此您将无法使用javascript直接将cookie从domain1转移到domain2。

如果您在两个域中都控制代码,则有一些解决方法。这是一种使用单个位置登录并通过URL参数传输登录凭证的方法: 跨域登录-从一个域传输到另一个域时如何自动登录用户

可以想像地使用URL传输机制,方法是登录第一个域,然后将.srciframe中的URL 设置为在URL中具有登录凭据。当第二个域加载到iframe中时,它将在URL中看到登录凭据,抓住它,将其转换为自己写的cookie值,然后刷新自身(因此现在看起来已登录)。您显然需要在两个域中都控制javascript以使用这两种技术,因为一个域的javascript无法将cookie直接放入另一个域中。

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