現在有四個主域名的網站,需要共享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="https://www.cnblogs.com/liucailing/p/b.com/index.html" onl oad="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>
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/117355.html
標籤:JavaScript
上一篇:【一統江湖的大前端(9)】TensorFlow.js 開箱即用的深度學習工具
下一篇:JS原型鏈常見面試題分析
