在iframe之间传递cookie数据

时间:2009-01-18 08:22:10

标签: php javascript apache iframe cookies

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

  1. 是否可以将内部iframe(api.example.com)中的cookie数据传递到网站,以便网站知道用户何时登录?
  2. 是否可以在客户端执行此操作,而无需刷新整个页面?如何将用户登录的事实传递给网站?
  3. 任何适用于FF和IE 6/7的解决方案都会很棒。

2 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:2)

通过让服务器将Cookie域指定为api.example.com,可以在www.example.comexample.com这两个域之间共享Cookie。这使得cookie可用于两个子域。

FF3和IE8支持postMessage标准,允许不同域中的窗口(帧)相互通信。但是对于IE6 / 7,您需要对服务器进行AJAX调用才能获得您需要的登录确认,但是如果要知道如何触发这样的请求,那将会很棘手。