Pass array of data from Angular $http POST Pass array of data from Angular $http POST angularjs angularjs

Pass array of data from Angular $http POST


According to this post, you're right, this is about serialization. Angular doesn't automatic serialize the data for you, you need to parse the data before sending it:

...$http({  url: 'myURL',  method: "POST",  data: $.param(data),  headers: {    'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'  }})...

If you don't use jQuery, you'll need to roll your own $.parse. There is a snippet here or you could adapt jQuery implementation.


angular.toJson(data)

should work in place of

$.param(data)


fauverism is right, you can use angular.toJson(data). Not instead, but before $.param though.

function TestCtrl($scope, $http){$scope.postTest = function(){    var data = [obj1, obj2, obj3];    var jsonData=angular.toJson(data);    var objectToSerialize={'object':jsonData};    $http({        url: 'myURL',        method: "POST",        data: $.param(objectToSerialize),        headers: {                 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'        }    }).success(function(data){        alert("done");    });}

}