当前位置: 移动技术网 > IT编程>开发语言>JavaScript > cookie共享

cookie共享

2020年04月19日  | 移动技术网IT编程  | 我要评论

现在有四个主域名的网站,需要共享cookie的invite_id

php

通过后台接口设置cookie和存储cookies,后台操作的cookie是接口域名底下的cookie【pass】

javascript:

主域名a.com   b.com 【其他的域名同理】

a.com获取到b.com底下存储的cookie;

方法一:

在a.com域名下的网站引入b.com域名下的js【这个js需要获取b.com的cookie,并进行存储操作】,然后在a.com可以看到b.com的cookie,进行到这一步不知道怎么获取,然后pass【备注:等找到方法再来更】

方法二:

使用postmessage()

在a.com的文件

<iframe src="b.com/" onload="getothercookie()" id="sendmessage"></iframe>
<script type="text/javascript">
        function getothercookie() {
            var ifr = document.getelementbyid('sendmessage');
            //使用iframe的window向iframe发送message。
            ifr.contentwindow.postmessage("传值", "b.com");
            window.addeventlistener('message', function (e) {
                if(e.data && json.parse(e.data).invite_id){
                    /*存储cookie*/
                   setcookie('invite_id',json.parse(e.data).invite_id,30)
                }else{
                    console.log(e);
                }
            })
        }
    </script>

 在b.com的文件中

 

<script type="text/javascript">  
     var getcookiescode=getcookie('invite_id')?getcookie('invite_id'):'';
        window.addeventlistener('message', receiver, false);
        function receiver(e) {
           if (e.data) {
               // 注释掉的为单次父子交互
         // var obj = {'invite_id':getcookiescode};
              // e.source.postmessage(json.stringify(obj), e.origin);
              // console.log(e.data)

                var obj = {'invite_id': getcookiescode}
                window.parent.postmessage(json.stringify(obj), e.origin)
          } else {
             console.log(e.data);
         }
    }
  </script>

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网