When I use $http.get
my code works, but if I use $http.post, I never get the parameters to the request .php file.
This is Service function:
What if you specify the content-type in the headers, specifically like this:
$http({
method: 'POST',
url: '/data/AJAXRequest.php',
data: { mydata: 1, abcd: 2 },
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
}).success(....);
Found comments relating to PHP specifically from this question: AngularJs $http.post() does not send data
It would seem that Angular sends as application/json by default, which can confuse PHP.
Post data like this:
$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);
});
headers must be added in the end of the array otherwise it won't work.
I faced the same issue but I found that there is no issue in angular http post method, issue is there where I am trying to get post data.
$params = json_decode(file_get_contents('php://input'),true);
I used this code to get the posted data from angular and its works like a charm