2016-08-30 3 views
-1

У меня есть функция с именем getCookie(x), которая возвращает значение cookie с именем x. Когда я проверяю console.log(getCookie(foo));, он возвращает правильный термин либо solved, либо пустую строку, если файлы cookie не существуют. Foo - переменная!compare Значение cookie возвращает «false» каждый раз

Для этого испытания, мое печенье foo существует и значение "solved" , но если я это сделать:

console.log(getCookie(foo) == "solved"); 

она возвращает ложь. Почему это?

это мой getCookie() Функция:

function getCookie(cname){                  
       var name = cname + "=";               
       var carray = document.cookie.split(";");           
       for(var j=0; j <carray.length; j++){            
         var cookie = carray[j];             
         while(cookie.charAt(0)==" "){           
          cookie = cookie.substring(1);          
         } 
         if (cookie.indexOf(name) == 0){           
          return cookie.substring(name.length,cookie.length); //retruns the value of the cookie, in my case it is always "solved" 
         } 
       } 
       return ""; //if there is no cookie with the given name, it returns an empty string                 
} 

я удалил комментарии, потому что они не на английском языке. Мои куки также получили срок действия, поэтому я должен сделать эти «дикие» вещи, чтобы получить часть cookiename=value.

+0

является 'foo' переменной или вы хотите написать' 'foo' '? –

+1

Я проверил ваш код на stackoverflow.com: 'getCookie ('_ ga')' работает. Поэтому я не могу воспроизвести проблему. –

+0

Я проверил переменную cookie с typeof, и он вернул «объект». вот почему он вернул false, когда я дал объект моей функции getCookie! –

ответ

0

Я проверил console.log(typeof(foo)); и как-то это был объект, вот почему мое сравнение строк вернулось «ложно».

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