如何在用户刷新页面时进行angularjs $ http POST调用?

时间:2014-03-21 03:08:29

标签: javascript angularjs http rootscope

控制器:

app.run(function ($rootScope, $templateCache) {
    $rootScope.$on('$viewContentLoaded', function ($scope, $http) {     
        $templateCache.removeAll();
        alert("refresh.....");
        $http({
            url: '/angularjs-restful/check/check-session',
            method: "POST",
            data: {},
            isArray: false
        }).success(function(data, status, headers, config){
            alert("success.....");
            console.log('status: ' + status);
            console.log('data: ' + data);
        }).error(function(data, status, headers, config){
            alert('error');
        });        
        alert("end.....");
    });       
});

当用户在键盘上按f5或用鼠标手动刷新页面时,我需要进行AJAX调用。我怎样才能做到这一点? url是一个返回true或false的rest服务。

1 个答案:

答案 0 :(得分:0)

您可以使用window.onbeforeunload 函数来侦听应该在f5上触发的卸载事件。

function ctrl($scope, $window) {
    angular.element($window).bind('beforeunload', function() {
        console.log('do ajax call');
    });
}