2016-08-30 8 views
-1

名前がxのクッキーの値を返すgetCookie(x)という名前の関数があります。 console.log(getCookie(foo));でチェックすると、正しい用語がsolved、またはクッキーが存在しない場合は空の文字列が返されます。 Fooは変数です!このテストのためにcompare毎回「false」が返されます

は、私のクッキーfooが存在し、値が"solved" ですが、私はこれを行う場合:

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

は、それはfalseを返します。どうしてこれなの?

これは私の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でチェックし、 "object"を返しました。なぜ私はgetCookie関数にオブジェクトを渡したときにfalseを返したのですか? –

答えて

0

私はconsole.log(typeof(foo)); をチェックしていましたが、何とかそれがオブジェクトだったので、私の文字列の比較が "false"を返すのです。

関連する問題