2015-08-12 14 views
7

Ho uno scenario in cui sto aggiungendo un cookie utilizzando il normale java-script e provando a recuperarlo utilizzando il servizio di cookie angolare che funziona correttamente. Ma la rimozione del cookie tramite il servizio Cookies non funziona. Il mio JS è comeAngular Cookies.remove non funziona

<script type="text/javascript"> 
     var app = angular.module('MyApp', ['ngCookies']); 
     app.controller('MyController', function ($scope, $window, $cookies) { 
      $scope.ReadCookie = function() { 
       $window.alert($cookies.get('username')); 
      }; 
      $scope.RemoveCookie = function() { 
       $cookies.remove('username'); 
      }; 

     }); 
     function addCookie(){ 
       document.cookie="username=John Doe;path=/"; 
      } 
    </script> 

mio HTML è

<div ng-app="MyApp" ng-controller="MyController"> 
     <input type="button" value="Write Cookie" onclick="addCookie()"/> 
     <input type="button" value="Read Cookie" ng-click="ReadCookie()" /> 
     <input type="button" value="Remove Cookie" ng-click="RemoveCookie()" /> 
    </div> 

È legato al percorso del cookie, se sì, come posso citare il percorso nella funzione di rimozione?

+0

Dovresti usare il modo angolare di creare un nuovo cookie. controlla anche che tu abbia nel tuo html. – vaske

risposta

3

Prova questa

app.controller('MyController', function ($scope, $window, $cookies) { 
    $scope.ReadCookie = function() { 
     $window.alert($cookies.get('username')); 
    }; 
    $scope.RemoveCookie = function() { 
     $cookies.remove('username'); 
    }; 
    $scope.addCookie= function() { 
     $cookies.put('username','John',[path:'/']); 
    }; 

}); 
+0

In realtà non posso aggiungere un cookie utilizzando angolare. È uno scenario esistente fatto da un servlet. Tutto ciò di cui ho bisogno è la rimozione del cookie. – robin

+0

http://stackoverflow.com/questions/14196229/cant-delete-cookie-with-angularjss-cookies – Vishnu

18

Prova con { path: YOUR_PATH } come parametro.

Ad esempio, con <base href="/">, messo $cookies.remove('username', { path: '/' });

+0

Sì, se lo si imposta con un'opzione percorso, rimuoverlo con un'opzione percorso. –

0

percorso impostazione predefinita ha funzionato per me:

$cookiesProvider.defaults.path = "/"; 
0

Per l'angolare mi blocco per eliminare il cookie da un altro path il trucco che ho fatto a work-around è stato quello di impostare la data expire dal cookie a now _ (ツ) _/¯:

$cookies.put(cookieName, cookieValue, { expires: $window.moment().toString() }); 
Problemi correlati