Вот тот, который бросает меня для цикла. Я пытаюсь установить простой cookie, который имеет одну name:value пару на IE8. Протестированный на FF и это хорошо работает. IE8 продолжает блокировать его.
Я читал о материале P3P и создал основной документ P3P, никакие ошибки, о которых сообщает инструмент IBM, и добавил следование всех страниц:
<meta http-equiv="P3P" CP="CAO DSP COR PSDa CONi TELi OUR STP COM NAV"><link rel="P3Pv1" href="/w3c/p3p.xml"></link>
Код, который я использую для установки cookie, следующие:
function setCompatibilityCookie(c_name, value, expiredays) {
var exdate = new Date();
exdate.setDate(exdate.getDate() + expiredays);
document.cookie= c_name + "=" + escape(value) + ((expiredays==null) ? "" : ";expires=" + exdate.toUTCString());}
Какие-либо идеи, почему IE8 мешает блокированию меня устанавливать этот cookie?
Спасибо, Schalk
Одна из проблем может заключаться в том, что вы используете getDate()
, который возвращает день месяца. Если ваш expiredays
слишком велик, он должен переместиться на следующий месяц, но в IE он может оставаться в этом месяце и истекать сразу. Может быть, попробуйте следующее:
function setCompatibilityCookie(c_name, value, expiredays) {
var exdate = new Date();
exdate.setTime(exdate.getTime() + (expiredays * 86400000));
document.cookie= c_name + "=" + escape(value) + ((expiredays==null) ? "" : ";expires=" + exdate.toUTCString());}
Я был использование одного и того же кода для установки файлов cookie на стороне клиента без каких-либо проблем. Я бы определенно исследовал настройку IE, а не сам код. В IE у вас есть множество возможностей сказать, принимаете ли вы файлы cookie или нет, в зависимости от источника (как вы его заметили). Я бы определенно начал здесь! Удачи