我有两个网站 - 无论是我的项目。 在站点中的两个,我需要检查,如果用户登录在现场之一。 我想这样做我应该创建一个把一个cookie到iframe的身体,然后阅读在现场两个IFRAME内容的脚本。 但我不能。
这里是我的测试目的而进行的代码:
http://jsbin.com/oqaza/edit
我得到了一个错误,即说:
拒绝“权限为< http://jsbin.com >从中获取财产HTMLDocument.nodeType < http://www.google.com >”。
iframe的文件都受到同源策略 -在另一台主机上,则无法在一台主机上访问内容从一个页面。 同样是AJAX请求的事实。
对于现代的浏览器,一个解决方案是跨文档消息 。
正如其他人所说,使用cookie是不是由于安全问题一个很好的选择。 您可以通过撑船在用户重新登录到其他站点,检查cookie,并且撑船他们回到他们在与显示状态的查询字符串的页面做到这一点,但这是笨重的,至少可以说。
更好的方法是创建一个Web服务(或MVC JsonResult如果你到净MVC)上site1的,可以从站点2有关的登录状态的AJAX请求作出响应。
我终于得到它。 一般来说有像(即使在这里使用的SO)“OpenID的”解决方案,但我发现,这JSONP是跨域读取cookies最简单的方法:)