$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() {            
          function success(response) {
            console.log('success: %o', response);
          function error(response) {
            console.log('error: %o', response);

      $scope.handleLocationChangeSuccess = function() {

      // Bind event handlers

      // Call the constructor

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