2013-08-28 14 views
19

Ho due cookie nel mio file JS e voglio rimuoverli.remove Cookie using jquery non funziona

Ho provato il seguente codice ma non funziona

$.removeCookie('filter', { path: '/Home/' }); 
$.removeCookie('Pfilter', { path: '/Home/' }); 

Ho anche provato il sotto per biscotti nulli, ma questo non è anche lavorando.

Grazie per l'aiuto

$.cookie('filter',null, { path: '/Home/' }); 
+3

È stato incluso il plugin biscotto? jQuery non ha metodi 'cookie' e' removeCookie' per impostazione predefinita. – kapa

risposta

41

Potrebbe dipendere da quale strada il cookie sta usando. Se vai agli strumenti di sviluppo di Chrome e controlla la colonna del percorso in Risorse> Cookie> Percorso.

enter image description here

Si potrebbe utilizzare il generico / per il vostro percorso, invece di /Home/. Dare il codice sotto una prova.

Per eliminare un cookie con jQuery impostare il valore su null:

$.removeCookie('filter', { path: '/' }); 
+0

sto usando la pagina specifica es. Home page quindi utilizza Home in tale –

+0

Hai controllato gli strumenti di sviluppo di Chrome? Risorse> Cookie> Percorso? – Mark

+0

sì check, questo mostra anche/Home/ –

5

Hai provato $ .cookie ("nome", null);

$.removeCookie('filter', { path: '/' }); 
+1

sì $ .cookie ("nome", null); –

+0

try $ .removeCookie – Ravia

+0

grazie a @Ravia per il suggerimento ... ha funzionato benissimo! dovrebbe essere contrassegnato come risposta –

2

Ciò che funziona per me è l'impostazione del cookie per nulla prima di rimuoverla: $.cookie("filter", null); $.removeCookie("filter);

0

ho avuto lo stesso problema con la versione jQuery 1.7.1 e biscotto jquery versione 1.4.1

Questo mi stava facendo impazzire quindi ho deciso di immergermi nel codice sorgente e ho capito cosa c'è che non va.

Ecco la definizione di $ .removeCookie

$.removeCookie = function (key, options) { 
    if ($.cookie(key) === undefined) { // this line is the problem 
     return false; 
    } 

    // Must not alter options, thus extending a fresh object... 
    $.cookie(key, '', $.extend({}, options, { expires: -1 })); 
    return !$.cookie(key); 
}; 

Come si può vedere quando i controlli delle funzioni se il cookie esiste non prende le opzioni oggetto in considerazione. Quindi, se sei su un percorso diverso da quello che stai cercando di rimuovere, la funzione fallirà.

alcune soluzioni:

Aggiornamento Jquery cookie. La versione più recente non esegue nemmeno questo controllo di integrità.

o aggiungere questo a voi documento pronto

$.removeCookie = function (key, options) { 
    if ($.cookie(key, options) === undefined) { // this line is the fix 
     return false; 
    } 

    // Must not alter options, thus extending a fresh object... 
    $.cookie(key, '', $.extend({}, options, { expires: -1 })); 
    return !$.cookie(key); 
}; 

o quando i cookie rimozione fare qualcosa di simile:

$.cookie('cookie-name', '', { path: '/my/path', expires:-1 });