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.我缺少什么?

谢谢你的帮助。

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

在angularjs代码中,使用params:而不是data: .

在jquery中,除非设置processData: false否则提供给data: config设置的对象将转换为查询字符串(?key1 = val1&key2 = value2)。 在angularjs中,你必须使用params:获取查询字符串, data:以json或stringforms发送。