$ http.post не работает в AngularJS

Когда я использую $http.get мой код работает, но если я использую $ http.post, я никогда не получаю параметры в файле .php запроса.

Это служебная функция:

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

И функция контроллера:

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

и файл My AJAXRequest.php

 <?php var_dump($_POST) ?> 

если я использую $ http.post ()

Выход :

  array (size=0) empty 

Если я использую $ http.get (), мой вывод:

 array (size=2) 'mydata' => string '1' (length=1) 'abcd' => string '2' (length=1) 

Я проверил сообщение в инструменте FireBug и отправил его в файл php. но php-файл не получает никаких параметров.

Если я использую $ .ajax или $ .post, мой код работает, и он дает ответ.

Что делать, если вы укажете тип содержимого в заголовках, в частности:

 $http({ method: 'POST', url: '/data/AJAXRequest.php', data: { mydata: 1, abcd: 2 }, headers: {'Content-Type': 'application/x-www-form-urlencoded'} }).success(....); 

Найденные комментарии, относящиеся к PHP, специально из этого вопроса: AngularJs $ http.post () не отправляет данные

Казалось бы, Angular отправляет как приложение / json по умолчанию, что может смутить PHP.

Я столкнулся с одной и той же проблемой, но обнаружил, что в угловом методе http post нет проблем, проблема там, где я пытаюсь получить данные для публикации.

 $params = json_decode(file_get_contents('php://input'),true); 

Я использовал этот код, чтобы получить опубликованные данные из угловых и его работы, как очарование

Опубликовать данные следующим образом:

 $http.post('/data/AJAXRequest.php', { mydata: 1, abcd: 2 }) 
 $http({ method: 'POST', url: 'http://mtapi.azurewebsites.net/api/sectiontype', dataType: 'json', data: {SectionTypeId:0, Name: $scope.message}, headers: { 'Content-Type': 'application/json; charset=UTF-8' } }).success(function (data) { alert(data); }).error(function (data) { alert(data); }); 

заголовки должны быть добавлены в конце массива, иначе он не будет работать.