I am learning angular by trying to create a very simple integration into a 
Rails web-service I've created. Currently I'm stuck on posting data to my 
web service as requests keep on failing. I know that the API works, as I'm 
able to create records using Postman. I'm also able to list all records in 
my angular app via ngResource GET request.

I believe that the reason for it failing is that I'm not passing the object 
in a correct format, but I can't find any tutorials on how to do this 
correctly. I need to pass the post data as a JSON object formatted like 
this:

{ "foo":
    {"bar":"[email protected]"}}

Currently this is what my ngResource service looks like:

appServices.factory('Foo', function($resource) {
    var data = $resource(
      'http://localhost:3000/api/v1/foo.json',
      {},
      {
        // 'get': { method:'GET', cache: false},
        'query': { method:'GET', cache: false, isArray:true },
        'save': {
            method: 'POST', 
            cache: false,
            isArray:false,
            headers:{'Content-Type':'application/json; charset=UTF-8'} 
        }
      });
    return data;});

And then in my controller, I handle the request as follows:

appControllers.controller('FooCtrl', function($scope, Foo, $location) {

    // Our form data for creating a new post with ng-model
    $scope.fooData = {};
    $scope.create = function() {
      var member = new Foo();
      member.$save( {"foo" : [{ "bar" : [ $scope.fooData.bar }] );
      $location.url("/");
    };
});


I think that the issue is a result of the POST being made as params to the 
URL and not as a body object. By looking at my web-service log I can see 
this:

"REQUEST_URI"=>"/api/v1/foo.json?foo=%7B%bar%22:%[email protected]
%22%7D&format=json"


How do I pass my request as a body JSON object in the required format?

-- 
You received this message because you are subscribed to the Google Groups 
"AngularJS" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/angular.
For more options, visit https://groups.google.com/d/optout.

Reply via email to