$http.get() fires $locationChangeSuccess event?


My understanding of $http is that the service wraps around the browser's XMLHttpRequest to provide async callout capabilities. However, when I use $http together with $location, I am finding that calling $http.get() also fires $locationChangeSuccess when the request produces a success response.

Why is this happening? Since the URL in my browser hasn't changed, I'm not expecting the $locationChangeSuccess event to be fired. The controller below illustrates the problem.

angular.module('fiddle', [])
  .controller('MainController', ['$scope', '$http', '$location'
    function($scope, $http, $location) {
      $scope.numberOfLocationChanges = 0;

      // Constructor
      $scope.__init__ = function() {            
        $http.get('/').then(
          function success(response) {
            console.log('success: %o', response);
          },
          function error(response) {
            console.log('error: %o', response);
          }
        );
      };

      $scope.handleLocationChangeSuccess = function() {
        $scope.numberOfLocationChanges++;
      };

      // Bind event handlers
      $scope.$on('$locationChangeSuccess',
        $scope.handleLocationChangeSuccess);

      // Call the constructor
      $scope.__init__();
    }
  ]);

In case it matters, after removing the $location service the $locationChangeSuccess is no longer fired.