Файл cookie настройки Javascript не работает на веб-сервере

#javascript #html #cookies

#javascript #HTML #файлы cookie

Вопрос:

Привет, я всего лишь новичок, и я устанавливаю файл cookie для запоминания пользователя. Когда я протестировал его, просто открыв файл в моем браузере (Safari), он работал нормально, но после загрузки его на мой сервер (xxxxxx.bplaced.net ) это больше не работает. Вот мой код:

 function setCookie(name,value,days) {
    var expires = "";
    if (days) {
        var date = new Date();
        date.setTime(date.getTime()   (days*24*60*60*1000));
        expires = "; expires="   date.toUTCString();
    }
    document.cookie = name   "="   (value || "")    expires   ";domain=xxxx.bplaced.net;path=/";
}
function getCookie(name) {
    var dc = document.cookie;
    var prefix = name   "=";
    var begin = dc.indexOf("; "   prefix);
    if (begin == -1) {
        begin = dc.indexOf(prefix);
        if (begin != 0) return null;
    }
    else
    {
        begin  = 2;
        var end = document.cookie.indexOf(";", begin);
        if (end == -1) {
        end = dc.length;
        }
    }
    // because unescape has been deprecated, replaced with decodeURI
    //return unescape(dc.substring(begin   prefix.length, end));
    return decodeURI(dc.substring(begin   prefix.length, end));
}

setCookie('justacookie','testcookie',7);
 

Кто-нибудь может мне помочь?

Комментарии:

1. это код для программирования на клиентском, серверном языке, который вы разрабатываете?

Ответ №1:

Настройка и получение cookie на стороне клиента:

 //set cookies
document.cookie = "userId=jkadfa08da7f8f6a7fa";

//get cookies
function getCookieValue(name) {
     var cookies = document.cookie;
     var cookiesArray = cookies.split(';');
     var findCookie = cookiesArray.find(c => c.includes(name));
     var cookieSplit = findCookie.split('=');
     //cookieSplit[0] === name (key)
     return cookieSplit[1];
}
 

На стороне сервера (Node.js ) установка и получение файлов cookie.

сначала установите библиотеку cookie-анализатора.

добавьте к вашему серверному приложению промежуточное программное обеспечение, подобное этому:

 const cookieParser = require('cookie-parser');
app.use(cookieParser());
 

тогда вы сможете получить и установить для каждого API файлы cookie таким образом:

 //get cookie
req.cookies['cookieName'];

//set cookie
res.cookie("userId","jkadfa08da7f8f6a7fa")
 

если вы имеете в виду, что хотите отправить их на сервер по запросу:
файлы cookie — это вложенный ключ в заголовке, и каждый запрос, который вы можете отправить в заголовках.

    axios.post('url', {"body":data}, {
        headers: {
            'Content-Type': 'application/json',
            'Cookie': yourcookie
        }
      }
    )
 

Комментарии:

1. Спасибо, но я не могу использовать node.js , любым другим способом?

2. вы можете, файлы cookie являются подразделом объекта заголовка. раньше мне это нравилось, но я перешел на cookie-анализатор, чтобы упростить его, в основном, как клиент, но получить его еще сложнее, чем на стороне клиента