In the case of sending form data in Angular, $http POST data information is serialized as “application/json” which is not interpretable by PHP.
You have to transform the request (the form data object) into a format that it understands. The easiest way is to configure the $httpProvider.
/* Because PHP sucks */ myApp.config(['$httpProvider', '$httpParamSerializerProvider', function($http, $httpParamSerializerProvider) { var paramSerializer = $httpParamSerializerProvider.$get(); $http.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8'; $http.defaults.transformRequest = function(data) { return paramSerializer(data); }; }]);