Подтвердить что ты не робот

JQuery ajax-запрос работает, тот же запрос AngularJS ajax не

Я изучаю AngularJS и пытаюсь создать интерфейсную систему, которая получает данные из Wordpress.

На внутренней стороне все кажется правильно настроенным, и когда я использую jQuery ajax-запрос, он получает данные без проблем.

jQuery.ajax({
    type: 'POST',
    url: '/wp-admin/admin-ajax.php',
    data: {
        action: 'getdataajax'
    },
    success: function(data, textStatus, XMLHttpRequest){
        console.log(data);
    },
    error: function(MLHttpRequest, textStatus, errorThrown){
        console.log(errorThrown);
    }
});

Но когда я пытаюсь сделать то же самое с AngularJS, это не сработает. Я пытаюсь реплицировать запрос ajax кодом следующим образом:

myApp.factory('productsData', function($http, $log) {
    return {
        getProducts: function(successcb) {
            return $http({ 
                method: 'POST', 
                url: '/wp-admin/admin-ajax.php', 
                data: {action: 'getdataajax'}
            }).success(function(data, status, headers, config) {
                    successcb(data);
                    $log.info(data, status, headers(), config)

            }).error(function(data, status, headers, config) {
                    $log.warn(data, status, headers(), config)
            });
        },

    };
});

Если я запишу его, он выведет 0. Что мне не хватает?

Спасибо за вашу помощь.

P.S. Контроллер выглядит так:

myApp.controller('ProductsController', function ProductsController($scope, productsData) {

    $scope.sortorder = 'name';

    // $scope.products = productsData.products;
    // $scope.products = productsData.getProducts();

    productsData.getProducts(function(products){
        $scope.products = products;
    });
});
4b9b3361

Ответ 1

В коде angularjs используйте params: вместо data:.

В jquery объект, переданный в настройку конфигурации data:, преобразуется в строку запроса (? key1 = val1 & key2 = value2), если вы не установите processData: false. в angularjs, вы должны использовать params: для получения строки запроса, data: отправляется как json или string.