2016-06-07 42 views
0

我正在嘗試使用AngularJS v1.5.x $cookies服務編寫一個簡單的cookie。依賴關係都是正確的,因爲我可以讀取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 ... =

沒有錯誤引發。

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

我可以寫一個cookie在我的控制器像這樣:

document.cookie = 'TEST=TESTVALUE'; 

什麼可能是這個原因試圖寫入一個新的Cookie時,同樣會發生?

+0

它可能會在舊版本的IE失敗。你在嘗試什麼瀏覽器? Chrome最新穩定版 – austin

+0

。 – isherwood

+0

你有沒有試過$ cookieStore.put把值? – Don

回答

1

事實證明,角$餅乾在寫的cookie,但我們有一個域/路徑問題。由於我們的Angular應用程序存在於我們的後端應用程序目錄之外,因此頁面URL與服務器路徑不匹配。如果我訪問了實際的路徑,而頁面沒有正確加載,那麼cookie就存在了。

我們解決了這個域名/路徑配置問題:

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

您是否嘗試過爲您的cookie設置過期時間?

例如

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); 

剛剛發現一個cookie線程實際上可能幫助:How to set expiration date for cookie in AngularJS

+0

我有。我將其刪除以簡化故障排除。該屬性不是必需的。 – isherwood