Khi tôi sử dụng $http.get
mã của tôi hoạt động, nhưng nếu tôi sử dụng $ http.post, tôi sẽ không bao giờ nhận được tham số cho tệp yêu cầu .php.
Đây là chức năng dịch vụ:
TestPanel.service('MySampleService', function ($http, $q) {
this.getAllPosts = function() {
var def = $q.defer();
$http.post('/data/AJAXRequest.php', 'mydata=1&abcd=2').success(function (data) {
if (data == null)
def.reject('ERROR: DATA IS NULL');
else if (data.HasError)
def.reject('ERROR: ' + data.Message);
else
def.resolve(data);
}).error(function() {
def.reject('ERROR: Sorry, unable to complete your request.');
});
return def.promise;
}
});
Và điều khiển chức năng: nộp
TestController.controller('PostCtrl', ['$scope', '$http', 'MySampleService',
function ($scope, $http, MySampleService) {
function FetchPostsList() {
MySampleService.getAllPosts().then(function (data) {
$scope.lstPosts = data.ResponseData;
$scope.totalRecords = data.totalRecords;
console.info('DATA=' + $scope.lstPosts);
},
function (err) {
console.info('err=' + err);
});
}
FetchPostsList();
}
]);
và My AJAXRequest.php
<?php
var_dump($_POST)
?>
nếu tôi sử dụng $ http.post ()
Output:
array (size=0)
empty
Nếu tôi sử dụng $ http.get() đầu ra của tôi là:
array (size=2)
'mydata' => string '1' (length=1)
'abcd' => string '2' (length=1)
Tôi đã kiểm tra các bài trong công cụ Firebug, mà nó gửi dữ liệu đến tệp php của tôi. nhưng tập tin php không nhận được thông số.
Nếu tôi sử dụng $ .ajax hoặc $ .post mã của tôi hoạt động và cung cấp phản hồi.
Giải pháp này làm việc cho tôi http://stackoverflow.com/questions/19254029/angularjs-http-post-does-not-send-data – Renaud