2016-06-17 11 views
1

$cookiesはangularjsで正しく動作しません。 true/false(文字列として格納)を格納するためにをに登録して、$cookiesシングルページアプリケーションで使用します。

前のバージョン:

私は

$cookies.put('displayUsers', $scope.somevalue, {expires:somedatetimevalue}); 

これがうまく働いたが、数ヶ月後に、正常に動作していないクッキーを書いたコード。 調査中(クロム)同じドメインの同じ名前の同じ名前の2つのクッキーが見つかりましたが、パスは異なっていました。最初のパスは/demo/project1で、もう1つは/project1でした。 URL /demoはアプリケーションの一部ではなく、そのようなURLはまったく別のアプリケーションにリダイレクトされます。 everyTime上記の$cookies.put()メソッドは、パス/demo/project1でクッキーを更新していないと呼ばれました。したがって、その値は常に偽でした。

この問題を解決するために、がChromeで正常に機能したCookieを保存するようにしましたが、IEでは無効です。

新バージョン:

$cookies.put('displayUsers', $scope.somevalue, {expires:somedatetimevalueinyears, path:'/demo/project1'}); 

私はまた、その後も、それはすなわちで働いていなかった、それを保存する前にクッキーを削除しようとしました。 コンソールでCookieの値を確認しましたが、document.cookie stmtを使用してdisplayUsersのCookieの場合は常にfalseでした。 ブラウザのデータをクッキーとともにクリアしてから試してみると、IEではこれまでと同じように動作します(一貫性は分かりません)。

IEで履歴を消去しないと、何が失敗する可能性がありますか?

また、両方の場合(pathが指定されているかどうか)にIEでcookieがどのように動作するかを知りたいと思います。

+0

あなたは依存関係として 'ngCookies'を含めましたか? –

+0

これですべてが含まれています。この問題はほぼ6ヶ月後に発生しました。これを修正するために、私は特定のパスでクッキーを保存し始めました。しかし、今ではそのように働いていない。私はそれが動作するように履歴をクリアする必要があります –

+0

なぜ1.4対1.5を使用していますか?何か特別な理由?あなたはまだそれが動作しないかどうかを見て1.5を試しましたか? – Ohjay44

答えて

0

私はまだ問題の根本原因は不明です。 この問題を解決するため、Cookie名を'DDdisplayUsers'に変更し、パスを'/'に変更しました。この変更は、IEとChromeの両方で機能します。

関連する問題