2015-08-12 7 views
7

У меня есть сценарий, в котором я добавляю cookie с использованием обычного java-скрипта и пытаюсь извлечь его с помощью углового сервиса Cookies, который работает нормально. Но удаление cookie с помощью сервиса Cookies не работает. Мой JS, какУгловые Cookies.remove не работают

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

Моего 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> 

Связан ли он на путь куков, если да, то как я могу упомянуть путь в функции УДАЛИТЬ?

+0

Вы должны использовать угловой способ создания нового файла cookie. также проверьте у вас есть в вас html. – vaske

ответ

3

Попробуйте

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

На самом деле я не могу добавить файл cookie с угловым. Его существующий сценарий сделан сервлетом. Все, что мне нужно - это удаление cookie. – robin

+0

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

18

Попробуйте с { path: YOUR_PATH } в качестве параметра.

Например, с <base href="/">, поставил $cookies.remove('username', { path: '/' });

+0

Да, если вы установите его с опцией пути, удалите его с опцией пути. –

0

путь настройки по умолчанию работает для меня:

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

Для того, чтобы угловое блокирование меня, чтобы удалить куки из другого path трюк, что у меня есть сделано для обхода, необходимо было установить дату expire из файла cookie на now ¯_ (ツ) _/¯:

$cookies.put(cookieName, cookieValue, { expires: $window.moment().toString() }); 
Смежные вопросы