javascript - 子域上的跨域 cookie 问题
问题描述
我有三个网址为 -
www.xyz.com
account.xyz.com
admin.xyz.com
我希望所有三个共享同一个cookie。如果我打开上述任何一个 URL,那么我的模式弹出窗口应该是可见的,并且应该存储 cookie,但是如果我尝试打开其他链接,那么在设置了 cookie 时,弹出窗口应该不可见。
我已经开发了逻辑并在具有不同端口的 localhost 中完美地工作,但对于实时站点却没有。它仅适用于一个站点!有人可以帮我解决这个问题。
提前致谢!
代码 -
$(window).load(function() {
$('#slideinModal').modal('show');
var popVisible = true;
if (popVisible === true) {
$('body').css({
'overflow': 'inherit',
'padding': '0'
});
// Set Cookie
function setCookie(cname, cvalue, exdays) {
var now = new Date();
var time = now.getTime();
time += 24 * 3600 * 1000;
now.setTime(time);
document.cookie = 'username=' + cname + '; expires=' + now.toUTCString() + '; path=/';
}
function getCookie(cname) {
var name = cname + "=";
var decodedCookie = decodeURIComponent(document.cookie);
var ca = decodedCookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') {
c = c.substring(1);
}
if (c.indexOf(name) == 0) {
return c.substring(name.length, c.length);
}
}
return "";
}
// Check Cookie
function checkCookie() {
var user = getCookie("username");
if (user != "") {
dynamiClass();
//alert("Welcome again " + user);
} else {
user = popVisible;
if (user != "" && user != null) {
setCookie("username", user, 30);
}
}
}
checkCookie();
popVisible = false;
}
});
// Toggle Logic
$('body').click(function (evt) {
if ($(evt.target).closest('.modal-backdrop').length) {
dynamiClass();
}
});
// Close Modal on Overlay
$('.toggle-offer-modal').on('click', function (e) {
e.preventDefault();
dynamiClass();
});
$('.toggleSlide-button').click(function () {
dynamiClass();
});
function dynamiClass() {
var oh = 250; //$('#slideinModal .modal-content').outerHeight();
$('.toggle-offer-modal').parents('#slideinModal').toggleClass('toggleActive');
if ($('#slideinModal').hasClass('toggleActive')) {
$('.toggleSlide-button').addClass('open');
$('.toggle-offer-modal').parents('#slideinModal').css('bottom', -oh + 40);
$('body').addClass('slideInOn');
$('body').removeClass('modal-open');
$('body').attr('style', '');
}
else {
$('.toggleSlide-button').removeClass('open');
$('.toggle-offer-modal').parents('#slideinModal').css('bottom', 0);
$('body').removeClass('slideInOn');
$('body').css({ 'overflow': 'inherit', 'padding': '0' });
}
}
解决方案
推荐阅读
- json - Scala - 从包含 JSON 格式数据的文件中提取值
- gremlin - values() 的奇怪行为
- python - 如何连接数据框,但仅在 ID 列值同时为数据框的情况下,并删除 ID 不匹配的行?
- javascript - 我如何按时间戳值对坐标进行分组
- arduino - 如何使用 OV7670 ESP32 和 SPIFFS 保存位图?
- c++ - Unreal GAS:当属性改变时将其当前值打印到 UI
- python - 给定分散的输入数据构造一个二维插值器
- python - 加载数据后如何获取属性和特征
- ionic-framework - 如何将 Ionic 4 应用程序部署到 Github 页面?
- javascript - Cannot POST /graphql