jQuery ajax请求有效,同样的AngularJS ajax请求没有

Pav*_*vel 14 javascript ajax wordpress jquery angularjs

我正在学习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);
    }
});
Run Code Online (Sandbox Code Playgroud)

但是当我尝试用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)
            });
        },

    };
});
Run Code Online (Sandbox Code Playgroud)

如果我记录它,它输出0.我缺少什么?

谢谢你的帮助.

PS控制器看起来像这样:

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;
    });
});
Run Code Online (Sandbox Code Playgroud)

Mii*_*chi 28

In the angularjs code, use params: instead of data:.

In jquery the object supplied to the data: config setting is converted to a query string (?key1=val1&key2=value2) unless you set processData: false. in angularjs, you have to use params: to get a query string, data: is sent as json or string.

  • 应该注意,这在服务器端变为req.query (4认同)
  • 在我将$ _POST更改为$ _REQUEST之前,这对我不起作用 (2认同)