Использовать ифрейм.
Ифрейм является полноценным окном браузера. В нём должна быть доступна вся функциональность, в том числе cookie. Как браузер решает, что ифрейм «сторонний» и нужно запретить для него и его скриптов установку cookie? Критерий таков: «в ифрейме нет навигации». Если навигация есть, то ифрейм признаётся полноценным окном. Например, в сторонний iframe можно сделать POST. И тогда, в ответ на POST, сервер может поставить cookie. Или прислать документ, который это делает. Ифрейм, в который прошёл POST, считается родным и надёжным. Popup-окно Другой вариант — использовать popup, то есть при помощи window.open открывать именно окно со стороннего домена, и уже там ставить cookie. Это тоже работает. Редирект Ещё одно альтернативное решение, которое подходит не везде – это сделать интеграцию со сторонним доменом, такую что на него можно сделать редирект, он ставит cookie и делает редирект обратно. Дополнительно · На Cookie наложены ограничения: o Имя и значение (после encodeURIComponent) вместе не должны превышать 4кб. o Общее количество cookie на домен ограничено 30-50, в зависимости от браузера. o Разные домены 2го уровня полностью изолированы. Но в пределах доменов 3го уровня куки можно ставить свободно с указанием domain. o Сервер может поставить cookie с дополнительным флагом HttpOnly. Cookie с таким параметром передаётся только в заголовках, оно никак не доступно из JavaScript. · Иногда посетители отключают cookie. Отловить это можно проверкой свойстваnavigator.cookieEnabled
if (!navigator.cookieEnabled) { alert('Включите cookie для комфортной работы с этим сайтом');} Что такое куки (cookie)? Куки - это небольшой объем данных, которые хранятся вэб браузером. Они позволяют Вам сохранять определенную информацию о пользователе и получать ее каждый раз, когда он посещает Вашу страницу. Каждый пользователь имеет свой собственный уникальный набор куков.
Обычно куки используются веб сервером для выполнения таких функций как отслеживание посещений сайта, регистрации на сайте и сохранения сведений о заказах или покупках. Однако нам не нужно придумывать программу для вэб сервера чтобы использовать куки. Мы можем использовать их с помощью JavaScript. Свойство document.cookie. В JavaScript куки доступны с помощью свойства cookie объекта document. Создать куки можно следующим образом: document.cookie = "name=значение; expires=дата; path=путь; domain=домен; secure";... и получить весь сохраненый набор куков так: var x = document.cookie;Давайте рассмотрим сохранение и получение куков более подробно. Сохранение куки Для сохранения куки нужно присвоить document.cookie текстовую строку, которая содержит свойства куки, которые мы хотим создать: document.cookie = "name=значение; expires=дата; path=путь; domain=домен; secure";Свойства описаны в таблице:
Давайте посмотрим пример установки куки:
Данный код устанавливает куки username, и присваивает ему значение "Вася", которое будет храниться до 15-го февраля 2011 года (используется Европейский формат времени!). var cookie_date = new Date (2003, 01, 15);document.cookie = "username=Вася; expires=" + cookie_date.toGMTString();Данный код выполняет точно такое же действие, как и предыдущий пример, но для установки даты используется метод Date.toGMTString(). Учтите, что нумерация месяца в объекте Date начинается с 0, то есть февраль - это 01. document.cookie = "logged_in=yes";Данный код устанавливает куки logged_in, и присваивает ему значение "yes". Так как атрибут expires не установлен, то куки удалится при закрытии браузера. var cookie_date = new Date (); // Текущая дата и времяcookie_date.setTime (cookie_date.getTime() - 1);document.cookie = "logged_in=; expires=" + cookie_date.toGMTString();Данный код устанавливает куки logged_in и присваивает строку хранения значение времени за одну секунду перед текущим - такая операция приведет к немедленному удалению куки. Ручной способ удалить куки! Перекодирование значения куки! Следует перекодировать значение куки для корректного хранения и отображения таких символов как пробел и двоеточие. Такая операция гарантирует, что браузер корректно воспримет значение. Перекодирование лекго выполняется функцией JavaScript escape(). Например: document.cookie = "username=" + escape("Вася Пупкин") + "; expires=15/02/2003 00:00:00";
Читайте также: PS: По желанию студента на практических занятиях можно использовать данные повседневных жизненных ситуаций и реально существующих предприятий. Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|