Cod*_*Med 6 javascript angularjs
我已阅读其他帖子,讨论在浏览器关闭时其他技术清理浏览器cookie的方式,但没有一个显示如何让AngularJS执行此操作. 如何在浏览器关闭时触发AngularJS中的cookie删除方法运行?
在AngularJS 1.4.8中,可以使用语法删除cookie $cookies.remove('keyname').我可以编写一个方法来按名称删除所有cookie.但是,如何在浏览器关闭时确保调用cookie删除方法?如果我希望在浏览器选项卡关闭时调用该方法,语法是否有所不同?
正在进行的努力:
根据@ User2341963的建议,我run在应用程序主模块中的方法中添加了cookie删除代码.当我将它放在logout()应用程序中的其他方法时,相同的确切代码正确运行,但是当我在firefox调试器中放置断点并关闭浏览器时,我发现在浏览器关闭时,cookie删除代码永远不会运行. 当浏览器关闭时,我对AngularJS删除所有cookie的代码做了哪些具体更改?
这是应用程序主模块的代码,包括run()方法:
angular
.module('hello', [ 'ngRoute', 'auth', 'home', 'secure', 'public1', 'navigation' ])
.config(
function($routeProvider, $httpProvider, $locationProvider) {
$locationProvider.html5Mode(true);
$routeProvider
.when('/', {
templateUrl : 'js/home/home.html',
controller : 'home'
})//plus other routes
.otherwise('/');
$httpProvider.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
}
).run(['$cookies', '$window', '$log', function($cookies, auth, $window, $log) {
//other stuff
$window.onbeforeunload = function() {
// Clearing all cookies now!
$cookies.remove("AUTH1");
$cookies.remove("AUTH2");
$cookies.remove('procStep');
$cookies.remove('usrname');
$cookies.remove('exists');
$cookies.remove('wid');
};
}]);
Run Code Online (Sandbox Code Playgroud)
如果您只需要cookie,因为您需要将其发送到后端服务器,您可以使用主控制器的$destroy事件。
使用$on.$destroy
当控制器即将被销毁时调用此事件。
其他选择是使用 angularjs sessionStorage
窗口自动关闭时会话存储被删除
| 归档时间: |
|
| 查看次数: |
4343 次 |
| 最近记录: |