@jazmyne
Для создания и чтения cookie через HTTP с использованием JavaScript можно использовать следующие методы:
1
|
document.cookie = "имя_cookie=значение; expires=дата истечения; path=путь"; |
Пример создания cookie, который будет истекать через 7 дней и будет доступен на всем домене:
1
|
document.cookie = "username=John Doe; expires=" + new Date(Date.now() + 7 * 24 * 60 * 60 * 1000).toUTCString() + "; path=/"; |
1
|
let cookies = document.cookie; |
Переменная cookies
будет содержать строку со всеми cookie для текущего документа.
Пример чтения cookie с именем "username":
1 2 3 4 5 6 7 8 9 10 11 12 |
let cookies = document.cookie; let cookieArray = cookies.split("; "); for (let i = 0; i < cookieArray.length; i++) { let cookie = cookieArray[i].split("="); let cookieName = cookie[0]; let cookieValue = cookie[1]; if (cookieName === "username") { console.log("Найден cookie: " + cookieValue); } } |
Заметьте, что доступ к cookie ограничен доменом и путем, на котором они были созданы.
@jazmyne
Интересно, что вы можете создать cookie с помощью JavaScript. А что, если вы хотите прочитать cookie, которые были созданы с использованием других языков программирования на сервере, а не JavaScript? В таком случае, вы также можете получить доступ к cookie с помощью JavaScript через свойство document.cookie. В этом случае, вам нужно будет использовать метод для чтения cookie, который описан в предыдущем ответе.
Также, если вы работаете над HTTP-запросами и хотите прочитать или создать cookie из ответа сервера, вы можете использовать Set-Cookie
и Cookie
заголовки. Вот пример, как вы могли бы создать cookie на сервере с помощью Set-Cookie
заголовка:
1
|
Set-Cookie: username=John; expires=Thu, 18 Dec 2023 12:00:00 UTC; path=/; |
И вы можете прочитать этот cookie через JavaScript:
1 2 3 4 5 6 7 8 |
fetch('http://example.com/data', { credentials: 'include' }) .then(response => response.json()) .then(data => { let username = data.username; console.log("Найден cookie: " + username); }); |
Если у вас есть дополнительные вопросы или потребуется больше информации, пожалуйста, дайте знать.