現在有四個主功能變數名稱的網站,需要共用cookie的invite_id PHP 通過後臺介面設置cookie和存儲cookies,後臺操作的cookie是介面功能變數名稱底下的cookie【pass】 Javascript: 主功能變數名稱a.com b.com 【其他的功能變數名稱同理】 a.com獲取到b.com底下存儲的c ...
現在有四個主功能變數名稱的網站,需要共用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的index.html文件
<iframe src="b.com/index.html" 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的index.html文件中
<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>