POST запросы AngularJS
Пытаюсь сделать POST запрос из AngularJS к бэкэнду на PHP. AngularJS код:
Object.assign(body, body_s, body_f, body_p, {a: 'afasdf'});
var dataa = $.param({
json: JSON.stringify(body)
});
$http.post('../backend_category.php', dataa).then(function(data, status){
$scope.items = data.items;
$scope.items_count = data.items_count;
console.log(data);
});
Но POST данные не передаются, в чем проблема?
Ошибок в консоли нет.
Ответы (1 шт):
Автор решения: Alik 46
→ Ссылка
Ошибку исправил. Код:
Object.assign(body, body_s, body_f, body_p);
var req = {
method: 'POST',
url: '../backend_category.php?move=3',
crossDomain: true,
headers: { "Content-Type": "application/x-www-form-urlencoded" },
data: 'test='+JSON.stringify(body)
}
$http(req).then(function(data, status){
$scope.items = data.data.result;
$scope.items_count = data.data.count;
console.log($scope.items);
});
Способ очень колхозный, но пока единственный который нашел.
Суть заключается в том, что мы передаем через POST переменную с названием test, а ее значение это строка, которая является объектом переведенным в строчку через JSON.stringify().
Код бэкэнда на PHP для получения нормального ассоциативного массива.
$post = json_decode($_POST[test], true);
Теперь переменная $post является тем самым привычным $_POST.
P.S. Если нашли способ получше обязательно напишите