0

AngularJS v1.5.x $cookiesサービスを使用して単純な Cookie を作成しようとしています。私はクッキーを読むことができるので、依存関係はすべて正しいです。ただし、書き込みも編集も機能していません。

例えば:

var blah = $cookies.get('mysite_auth');
console.log('old: ' + blah);

$cookies.put('mysite_auth', 'blech');

blah = $cookies.get('mysite_auth');
console.log('new: ' + blah);

... 次の出力が得られます。

旧: ZmVhZDE ... =
新: ZmVhZDE ... =

エラーはスローされません。新しい Cookie を書き込もうとすると、同じことが起こります。

$cookies.put('someCookie', 'yup');

次のように、コントローラーに Cookie を書き込むことができます。

document.cookie = 'TEST=TESTVALUE';

これの原因は何ですか?

4

2 に答える 2

1

Angular $cookies が Cookie を書き込んでいたことが判明しましたが、ドメイン/パスの問題がありました。Angular アプリはバックエンド アプリ ディレクトリの外にあるため、ページの URL はサーバー パスと一致しません。実際のパスにアクセスすると、ページが適切に読み込まれませんでしたが、Cookie が存在していました。

このドメイン/パス構成で問題を解決しました:

$cookies.put('myCookie', true, {
    domain: '.mydomain.com',
    path: currentUrl,
    expires: exp
});
于 2016-06-08T16:10:39.687 に答える