#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-анализатор, чтобы упростить его, в основном, как клиент, но получить его еще сложнее, чем на стороне клиента