在url(Javascript)上添加部件时,无法识别Cookie

在url(Javascript)上添加部件时,无法识别Cookie,javascript,jquery,cookies,Javascript,Jquery,Cookies,下面是我当前用于读取和创建cookie的两个函数(cookie的有效期应仅为1天) 函数set1DayValidationCookie(){ var d=新日期(); var today=d.getMonth()+“”+d.getDate(); 如果(readCookie('onedaycookie')!=今天){ document.cookie='onedaycookie='+今天; log('cookie已创建'); }否则{ 警报('cookie已存在!'); } } 函数readCook

下面是我当前用于读取和创建cookie的两个函数(cookie的有效期应仅为1天)

函数set1DayValidationCookie(){
var d=新日期();
var today=d.getMonth()+“”+d.getDate();
如果(readCookie('onedaycookie')!=今天){
document.cookie='onedaycookie='+今天;
log('cookie已创建');
}否则{
警报('cookie已存在!');
}
}
函数readCookie(名称){
变量nameEQ=name+“=”;
var ca=document.cookie.split(“;”);
对于(变量i=0;i
但在刷新页面时,会识别cookie 例如,我将url从www.mywebsite.com/en/更改为www.mywebsite.com/ru/ (出于语言目的)已再次创建cookie


我想问一下这部分缺少什么?

您需要将cookie的“
路径”
”部分设置为“
/
”。然后它将适用于所有路径

document.cookie = "username=John Smith; expires=Thu, 18 Dec 2013 12:00:00 UTC; path=/"; 

如果没有路径,cookie将仅为当前路径设置。

我建议使用此代码

window.cookie = {
set: function(c_name, value, exdays, path = '/') {
    var exdate = new Date();
    exdate.setDate(exdate.getDate() + exdays);
    var c_value = escape(value) + ((exdays == null) ? "" : ("; expires=" + exdate.toUTCString())) + "; path=" + path;
    document.cookie = c_name + "=" + c_value;
},
get: function(c_name) {
    var i, x, y, ARRcookies = document.cookie.split(";");
    for (i = 0; i < ARRcookies.length; i++) {
        x = ARRcookies[i].substr(0, ARRcookies[i].indexOf("="));
        y = ARRcookies[i].substr(ARRcookies[i].indexOf("=") + 1);
        x = x.replace(/^\s+|\s+$/g, "");
        if (x == c_name) {
            return unescape(y);
        }
    }
}
};

非常感谢。我只是这样更改->document.cookie='onedaycookie='+today+';路径=/';而且它工作得很好!
window.cookie = {
set: function(c_name, value, exdays, path = '/') {
    var exdate = new Date();
    exdate.setDate(exdate.getDate() + exdays);
    var c_value = escape(value) + ((exdays == null) ? "" : ("; expires=" + exdate.toUTCString())) + "; path=" + path;
    document.cookie = c_name + "=" + c_value;
},
get: function(c_name) {
    var i, x, y, ARRcookies = document.cookie.split(";");
    for (i = 0; i < ARRcookies.length; i++) {
        x = ARRcookies[i].substr(0, ARRcookies[i].indexOf("="));
        y = ARRcookies[i].substr(ARRcookies[i].indexOf("=") + 1);
        x = x.replace(/^\s+|\s+$/g, "");
        if (x == c_name) {
            return unescape(y);
        }
    }
}
};
if("undefined" !== typeof cookie.get('lang')){
     //cookie is not set
     cookie.set('lang', 'en', 1);
}else{
     //cookie is set
}