2014-09-25 90 views
1

使用Angularjs我正在開發一款移動應用程序,我需要在註銷後清除Cookie。我使用的服務是cookie認證,所以註銷後我需要清除它們。如何使用角度餅乾清除餅乾

爲此我嘗試了傳統的JS程序來清除這些cookie,但沒有奏效。

在做了一些更多的研究之後,我添加了angular-cookies庫並使用了ngCookies來訪問我的範圍中的$cookies$cookieStore。所有examples或SO帖子我說如何使用$cookies$cookieStore添加/編輯/刪除新的cookie。

但我不是自己設置cookie,它已被動態設置爲像JSESSIONID,SMSESSION..so(大字符串)。當我嘗試$cookieStore.get('JSESSIONID')結果未定義。 AFAIK餅乾是關鍵值對,如果是,那麼爲什麼我得到未定義。 (我是否在某處出錯)

是否有無論如何我可以讀取所有的cookies並使用角度 - 曲奇庫重置/清除它們。

+0

當你說「我使用的服務」時,那個服務是你的,並且託管在同一個域中?您無法讀取或寫入其他域的Cookie。 – ZachRabbit 2014-09-25 21:01:45

+0

正如我所說的一個移動應用程序,意味着我正在調用一個Web服務,它在設備webkit內存中存儲cookie信息。我能清楚嗎? – Bob 2014-09-26 06:40:36

+0

我不確定。在iOS上,我非常確定,如果它是設置cookie的另一個域,標準Safari瀏覽器和UIWebView都將遵守無法訪問另一個域的cookie的規則。你可以使用['NSHTTPCookieStorage'](https://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/NSHTTPCookieStorage_Class/index.html)刪除你想要的cookies。 – ZachRabbit 2014-09-26 21:51:01

回答

0

試試這個。它將遍歷存儲的cookie並動態刪除它們。

angular.forEach($cookies, function(value, key) { 
     $cookieStore.remove(key); 
    });