Matvik, якщо ви працюєте з AngularJS, то даю вам працюючий варіант POST запиту (думаю, що у вас виникли проблеми з відправкою саме POST запиту, а тому ви намагаєтесь працювати з GET).
Не роблю очищення коду, бо думаю ви розбиретесь де потрібна вам частина, плюс - прогляните як я обробляю відповідь від сервера. На HTML-сторінці у формі, вставляєте атрибут  ng-submit="fetch()", який викликає наведену в коді функцію (яка знаходиться в контролері)
var el = document.getElementById.bind(document);
$scope.fetch = function()
{
    angular.element(el('serch_text')).addClass('loading');
    $scope.msg = false;
    $cookies.limit_fetch = $scope.limit_fetch;
    
    var search_text = $scope.search_text;
    search_text = angular.isDefined(search_text) ? search_text : '';
    $scope.conv_lvls_to_arr();
    
    try
    {
        data_post = angular.toJson(
        {
            "date_fr": ($scope.date_fr.getTime()/1000),
            "date_to": ($scope.date_to.getTime()/1000 + (24*3600)),
            "limit_fetch": $scope.limit_fetch,
            "levels": arr_levels,
            "search_text": encodeURIComponent(search_text)
        });
    }
    catch(err)
    {
        angular.element(el('serch_text')).removeClass('loading');
        $scope.msg =
        {
            'class': 'warning',
            html: '<strong>Warning:</strong> ' + err.message
        };
        return;
    }
    $http
    ({
        method: 'POST'
        ,url: ''
        ,data: 'json=' + data_post
        ,cache: false
        ,headers: {"X-Requested-With": "XMLHttpRequest", "Content-Type" : "application/x-www-form-urlencoded; charset=UTF-8"}
    })
    .success(function(data)
    {
        angular.element(el('serch_text')).removeClass('loading');
        try
        {
            data = angular.fromJson(data);
        }
        catch(e)
        {
            $scope.msg =
            {
                'class': 'warning',
                html: '<strong>Warning:</strong> Server response is not JSON.'
            };
            return;
        }
        
        if(data.msg)
            $scope.msg =
            {
                'class': data.msg.class,
                html: data.msg.html
            };
        
        if(angular.isUndefined(data.logs) || data.logs == '')
        {
            $scope.logs = [];
            $scope.stat_lvls = [];
            if(angular.isUndefined(data.msg))
            {
                $scope.msg =
                {
                    'class': 'info',
                    html: '<strong>Info:</strong> not found logs with the specified parameters'
                };
            }
            return;
        }
        else
        {
            $scope.logs = data.logs;
        }
        $scope.stat_lvls = [];
        for(var i = 0; i < $scope.logs.length; i++)
        {
            var level = $scope.logs[i].level;
            if(angular.isDefined($scope.stat_lvls[level]))
                $scope.stat_lvls[level]++;
            else
                $scope.stat_lvls[level] = 1;
        }
        
        /**
         * Невеличкий костиль
         */
        var symbol_percent = search_text.indexOf('%');
        if(symbol_percent != -1)
            $scope.search_text = search_text.substr(0, symbol_percent);
    })
    .error(function(data, status)
    {
        $scope.logs = [];
        angular.element(el('serch_text')).removeClass('loading');
        if(status == 401)
        {
            if(angular.isDefined(data.auth_url))
                window.location = data.auth_url;
            else
                $scope.msg =
                {
                    'class': 'warning',
                    html: '<strong>Warning:</strong> Authentication required.'
                };
        }
        else if(status === 500)
            $scope.msg =
            {
                'class': 'warning',
                html: '<strong>Warning:</strong> Request failed.'
            };
    });
}