我的公司希望我设置跨域Cookie。例如a.com和b.com都包含cookie.com/cross_cookie.js
a.com触发设置cookie方法时。该cookie需要在cookie.com中设置。然后在b.com中也可以从cookie.com获取cookie。
我的解决方案是通过a.com中的cookie.com/cross_cookie.js创建一个隐藏的cookie.com/iframe.html。然后将postMessage api触发到cookie.com/iframe.html,以在cookie.com下设置一个cookie。
但是我的公司不允许我使用iframe。我的主管告诉我,我应该使用服务器端Cookie。例如“通过PHP删除服务器端Cookie。...但是将其设为JS脚本。”。我不太了解我的主管的意思,他对我没有更多的细节。只是想问问有没有解决不使用iframe的想法吗?
我的部分代码通过ifram设置cookie,如下所示:
prepare.iframe = function prepareFrame() {
var ifrm = document.createElement("iframe");
ifrm.setAttribute("src", "cookie.com/iframe.html");
ifrm.setAttribute("id", "crossdomain");
ifrm.style.width = "1px";
ifrm.style.height = "1px";
document.body.appendChild(ifrm);
return ifrm;
}
window.onload = function() {
var ifrm = prepare.iframe();
ifrm.onload = () => {
var iframeContent = document.getElementById("crossdomain").contentWindow;
iframeContent.postMessage({
'method': 'xxxxx'
}, "cookie.com/iframe.html");
};
}