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.'
};
});
}