假设我有一个网站 www.example.com,其登录框位于 api.example.com 的 iframe 中。我的问题是:
- 是否可以将 cookie 数据从内部 iframe(api.example.com)传递到网站,以便网站知道用户何时登录?
- 是否可以在客户端执行此操作,而无需刷新整个页面?用户登录的事实如何传递到网站?
任何适用于 FF 和 IE 6/7 的解决方案都会很棒。
假设我有一个网站 www.example.com,其登录框位于 api.example.com 的 iframe 中。我的问题是:
任何适用于 FF 和 IE 6/7 的解决方案都会很棒。
您不必在它们之间传递 cookie。不过,您需要将 cookie 写入正确的域。
Response.Cookies("COOKIENAME").Domain = ".example.com"
Response.Cookies("COOKIENAME").Value= "foo"
通过让服务器将 cookie 域指定为 simple ,可以在两个域之间共享api.example.com
cookie 。这使得 cookie 可用于两个子域。www.example.com
example.com
FF3 和 IE8 支持postMessage标准,允许不同域中的窗口(框架)相互通信。但是对于 IE6/7,您需要对服务器进行 AJAX 调用以获取您需要的登录确认信息,但棘手的事情是知道如何触发这样的请求。