现在要完成一项功能:网站A 要给 网站B 自动授权,这两个完全不是同一个域;只要访问网站B某一个页面,就可以完成自动授权了,也就完成了把 网站A的cookie种到 网站B下。问题:浏览器出于对用户隐私保护的考虑,不允许cookie跨域操作。目前要求通过,用iframe 进行跨域种值cookie 给网站B.例如:在 网站A 下用iframe 指向网站B现在只有个思路,具体实现方法还不太清楚,请大家指点下?

解决方案 »

  1.   

    "只要访问网站B某一个页面,就可以完成自动授权了", 难道网站A不能访问网站B的"某一个页面"?
      

  2.   

    又土又笨的方法,你看看腾迅的OAuth认证机制就懂了。
      

  3.   

    目前要求通过 iframe来完成。
    A页面应该是有一个隐藏的iframe,然后通过以GET方式夹带A的cookie,传递到B页面下。
      

  4.   

    你的要求 和 window.name跨域 很像啊如果a,b 2个域下的页面 你都能操作  是可以用window.name的a 里面有个iframe 先指向a下的一个页面x.html(x.html里面把cookie赋给window.name)
    然后完成后把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:这个技术比较老了  新的浏览器支持不支持 我并不清楚
      

  5.   

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <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>
      

  6.   

    我不信,iframe里面还不能跨域get
      

  7.   


    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我了解到的就这些,应该还有很多,有了解可以补充下或详见说一下以上几种的特点。