2016-07-14 2 views
0

В моем приложении я создал печенье с помощью JQuery Cookie Plugin v1.4.1 (https://github.com/carhartl/jquery-cookie), как это:Как избежать повторяющегося печенья

$.removeCookie("Test_Cookie"); 
$.cookie("Test_Cookie", "xxx"); 

Я хочу это печенье, чтобы существовать только один раз, но при некоторых обстоятельствах печенье существует дважды.

Как это возможно и что является лучшей практикой, чтобы убедиться, что определенный файл cookie существует только один раз?

+0

, что вы имеете в виду, "существуют два"? у вас есть два cookie 'Test_Cookie', которые отображаются в банке cookie пользователя? –

+0

Да. Посмотрите скриншот от Fiddler: http://imgur.com/WlYu987 – Palmi

+0

проверьте исходные заголовки и посмотрите, что такое 'set-cookie'. если у вас есть два куки-файла, но с разными путями, вы можете получить одно и то же имя/значение, и какой из них возвращает ваш браузер, не определен/изменен. –

ответ

0

Вы можете использовать String.prototype.split() для преобразования document.cookie в массив ключевых строк значений (key=value), то вы можете перебрать эти, разделить их, и если ключ значение, перерыв. Пожалуйста, смотрите пример ниже:

function checkCookieExists(cookieName){ 
    var cookies = document.cookie.split(';'); //returns lots of these: key=value 
    var toCheckCookie = cookieName; //checks if this cookie exists 

    cookies.forEach(function(cookie){ //foreach cookie 
    var key = cookie.split('=')[0]; //the key cookie 

    if (key.toLowerCase() === toCheckCookie) //if the current key is the toCheckCookie 
    { 
     return true; 
    } 
    }); 
    return true; 

}

Смежные вопросы