在iframe之间传递cookie数据

3

假设我有一个名为www.example.com的网站,其中包含一个登录框,该框位于api.example.com中的iframe中。我的问题是:

  1. 是否可以从内部iframe(api.example.com)传递cookie数据到网站,以便网站知道用户何时登录?
  2. 是否可以在客户端完成此操作,而无需刷新整个页面?用户登录的事实将如何传递到网站?

希望任何解决方案均能在FF和IE 6/7上正常运行。


请为您的服务器端平台添加标签。 - AnthonyWJones
2个回答

4

您不需要在它们之间传递cookie。但是,您需要将cookie写入正确的域。

Response.Cookies("COOKIENAME").Domain = ".example.com"
Response.Cookies("COOKIENAME").Value= "foo"

2
服务器可以通过将cookie域指定为example.com来在两个域之间共享cookie,如api.example.comwww.example.com。这使得cookie可用于两个子域。
FF3和IE8支持postMessage标准,允许不同域中的窗口(框架)进行通信。但是,在IE6/7中,您需要向服务器发出AJAX调用以获取所需的登录确认,但棘手的问题是如何触发此类请求。

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