现在要完成一项功能:网站A 要给 网站B 自动授权,这两个完全不是同一个域;只要访问网站B某一个页面,就可以完成自动授权了,也就完成了把 网站A的cookie种到 网站B下。问题:浏览器出于对用户隐私保护的考虑,不允许cookie跨域操作。目前要求通过,用iframe 进行跨域种值cookie 给网站B.例如:在 网站A 下用iframe 指向网站B现在只有个思路,具体实现方法还不太清楚,请大家指点下?
调试欢乐多
A页面应该是有一个隐藏的iframe,然后通过以GET方式夹带A的cookie,传递到B页面下。
然后完成后把iframe的src指向b的页面y.html (y是你能操作的页面 去取window.name的值)window.name 跨域介绍
http://www.planabc.net/2008/09/01/window_name_transport/http://www.cnblogs.com/rainman/archive/2011/02/21/1960044.htmlps:这个技术比较老了 新的浏览器支持不支持 我并不清楚
<html>
<head>
<title> New Document </title>
<meta name="Generator" content="EditPlus">
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content="">
</head> <body>
<iframe src='http://www.baidu.com/baidu?wd=%BF%E7%D3%F2%CC%E1%BD%BB%CA%FD%BE%DD&tn=monline_4_dg' height="200px"/>
</body>
</html>
1、在A页面下通过js动态创建一个隐藏的iframe;
2、然后利用iframe的src将A页面下的cookie作为get参数重定向到B页面 b.php;
3、B页面b.php接收A页面传递过来的cookie值,并将所获得的值写入的cookie中。
4、这样就可以实现 cookie跨域访问了。4楼wtcsy 说的方法,应该也是常用的。总结一下,cookie跨域方法吧:单向跨域
1、一些html标签的src属性(jsonp)
2、window.name
3、flash (crossdomain)
双向跨域:
1、window.postMessage
2、document.domian=
3、serverproxy我了解到的就这些,应该还有很多,有了解可以补充下或详见说一下以上几种的特点。