2016-06-07 12 views
0

Ich versuche, einen einfachen Cookie mit dem AngularJS v1.5.x $cookies Dienst zu schreiben. Die Abhängigkeiten sind alle korrekt, da ich einen Cookie lesen kann. Es funktionieren jedoch weder Schreiben noch Bearbeiten.

Zum Beispiel:

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

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

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

... Ergebnisse werden in der folgenden Ausgabe:

alt: ZmVhZDE ... =
neu: ZmVhZDE ... =

Es werden keine Fehler ausgegeben. Das gleiche geschieht, wenn ein neues Cookie zu schreiben versucht:

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

ich wie so ein Plätzchen in meinem Controller schreiben:

document.cookie = 'TEST=TESTVALUE'; 

Was könnte die Ursache dafür sein?

+0

Es könnte auf älteren Versionen des IE scheitern. Mit welchen Browsern versuchen Sie dies? – austin

+0

Chrome neuesten stabilen. – isherwood

+0

haben Sie versucht $ cookieStore.put, um Werte zu setzen? – Don

Antwort

1

Es stellt sich heraus, dass Angular $ Cookies, um die Cookie schrieb, aber wir eine Domäne/Pfad Problem hatte. Da sich unsere Angular-Apps außerhalb unseres Back-End-Anwendungsverzeichnisses befinden, stimmt die Seiten-URL nicht mit dem Serverpfad überein. Wenn ich den tatsächlichen Pfad besuchte, während die Seite nicht ordnungsgemäß geladen wurde, war der Cookie vorhanden.

Wir beschließen, das Problem mit dieser Domain/Pfadkonfiguration:

$cookies.put('myCookie', true, { 
    domain: '.mydomain.com', 
    path: currentUrl, 
    expires: exp 
}); 
-1

haben Sie versucht, das Ablaufdatum für Ihren Cookie festzulegen?

z.B.

var dDate = new $window.Date(), 
var dExp = new $window.Date(dDate.getFullYear(), dDate.getMonth()+1, dDate.getDate()); 

$cookies.put('someCookie','yup', {expires: dExp}); 

var cCookie = $cookies.get('someCookie'); 
console.log(cCookie); 

fand gerade ein Cookie Thread, die tatsächlich helfen könnten: How to set expiration date for cookie in AngularJS

+0

Ich habe. Ich habe es entfernt, um die Fehlersuche zu vereinfachen. Diese Eigenschaft ist nicht erforderlich. – isherwood

Verwandte Themen