2017-12-28 17 views
-1

Ich habe eine Funktion:Get Cookie-Funktion gibt immer false zurück

function check(cv) { 
    return !!document.cookie.split(/;\s*/).filter(function (c) { 
    return cv === c.split(/=/)[1] 
    }).length; 
} 

die true oder false abhängig von einem Cookie zurückgeben sollte, wenn es vorhanden ist oder nicht.

Ich habe einen Beispielcode - https://jsfiddle.net/HillelNagid/bu4qboum/, der einen Cookie erstellt mopened und zeigt einen modalen Dialog, wenn der Cookie nicht existiert, und wenn dies der Fall ist, wird der modale Dialog nicht angezeigt.

Das Problem ist, dass check() Funktion false zurückgibt, obwohl der Cookie vorhanden ist. Ich möchte wissen, warum ist das so?
Es kann sein, weil der Pfad des Cookies?

Antwort

0

Sie nehmen den zweiten Index des Arrays nach dem Split ... ändern Sie es zum ersten Index. ändern Sie den Code wie folgt.

function check(cv) { 
    return !!document.cookie.split(/;\s*/).filter(function(c){ 
       return cv === c.split(/=/)[0]}).length; 
      } 

als Schlüssel wird von in dem ersten Teil von Split sein =

+0

Es false.https noch: //jsfiddle.net/HillelNagid/bu4qboum/2/ –

+0

für mich .. es funktioniert ... machen sicher Cookie ist richtig gesetzt –

+0

zu testen, fügen Sie diese Funktion in der Konsole und Cookie im Speicher und rufen Sie dann diese Funktion mit dem gleichen Namen wie Cookie-Schlüssel –

Verwandte Themen