How about trying

$http.post("
http://localhost:8080/restful/services/domainapp.dom.BusinessEntities.AuditItemMenu/actions/create/invoke";,
data)

At the moment you're sending the data as url parameters rather than as a
body.





On Mon, Sep 11, 2017 at 8:00 AM, Dan Haywood <[email protected]>
wrote:

> Hi Eder,
> sorry no-one has come back with a quick solution for you ... I guess we
> don't have too many Angular JS experts reading.
>
> To confirm, is this Angular JS (or v1.x) rather than Angular (V2+) ?
>
> If you could upload to github a simple example with Angular JS code that
> demonstrates the issue, I'll see if I can take a look.
>
> Also, done it works with Postman, perhaps you could use Fiddler or just the
> Chrome/Firefox debugging tools to see what is being sent over the wire?
>
> It's also very easy to debug servers use, so you could put a breakpoint in
> the appropriate XxxServerSideResource class to see what's being received in
> the Postman Vs Angular cases.
>
> HTH
> Dan
>
> On Sat, 9 Sep 2017, 02:13 L Eder <[email protected]> wrote:
>
> > What i am doing wrong or missing?
> >
> > Could someone give a tip on AngularJS for when invoking a create
> > (POST) action ?
> >
> > I have currently this use case, and it works when the API method all
> > args are by-value.
> >
> > However when the args are by-reference (object reference), i am unable
> > to succeed it using AngularJS. But i succeed if i do it using Postman.
> >
> > The message i am getting is:
> >
> >         "Expected a link (because this object's type is not a value) but
> > found no 'href'"
> >
> > Thanks in advance, Eder
> >
> >
> >
> > = Source Code on backend =
> > AuditItemMenu.java:
> > @Action(
> > )
> > @MemberOrder(sequence = "3")
> > public AuditItem create(
> >         final Audit audit,
> >         final Asset asset,
> >         final Location location) {
> >     return auditItemrepository.create(audit, asset, location);
> > }
> >
> >
> > = Source Code on frontend =
> >
> > .factory('AuditItemStore', function($http, $ionicLoading, $resource) {
> > var apiUrl = 'http://localhost:8080';
> >
> > // Define a resource
> > var AuditItemCreate = $resource(
> >   apiUrl +
> > '/restful/services/domainapp.dom.BusinessEntities.
> AuditItemMenu/actions/create/invoke');
> >
> > var list = function() {
> >
> >     var pendingWrites = [];
> >
> >     return pendingWrites;
> > }
> >
> > var create = function(auditItem) {
> >
> >       var data =        {
> >         "location" : {
> >           "href" :
> > "http://localhost:8080/restful/objects/businessentities.Location/47";
> >         },
> >         "asset"    : {
> >             "href":
> > "http://localhost:8080/restful/objects/businessentities.Asset/36";
> >         },
> >         "audit"    : {
> >             "href" :
> > "http://localhost:8080/restful/objects/businessentities.Audit/2";
> >         }
> >       }
> >
> >       // Post the new data
> >       var a2 = new AuditItemCreate();
> >
> >       a2.$save(data)
> >           .then(function(res)  { console.log("success") })
> >           .catch(function(req) { console.log("error saving obj: " +
> > JSON.stringify(req, null, 4)); })
> >           .finally(function()  { console.log("always called") });
> > };
> >
> >
> > = Error result, as displayed by Chrome Developer Tools console =
> >
> > POST
> > http://localhost:8080/restful/services/domainapp.dom.BusinessEntities.
> AuditItemMenu/actions/create/invoke?asset=%7B%22href%22:%
> 22http:%2F%2Flocalhost:8080%2Frestful%2Fobjects%
> 2Fbusinessentities.Asset%2F36%22%7D&audit=%7B%22href%22:%
> 22http:%2F%2Flocalhost:8080%2Frestful%2Fobjects%
> 2Fbusinessentities.Audit%2F2%22%7D&location=%7B%22href%22:%
> 22http:%2F%2Flocalhost:8080%2Frestful%2Fobjects%
> 2Fbusinessentities.Location%2F47%22%7D
> > 422 (Unprocessable Entity)
> >
> > audititemstore.js:60 error saving obj:
> > {
> >     "data": {
> >         "asset": {
> >             "value":
> > "{\"href\":\"
> > http://localhost:8080/restful/objects/businessentities.Asset/36\"}";,
> >             "invalidReason": "Expected a link (because this object's
> > type is not a value) but found no 'href'"
> >         },
> >         "audit": {
> >             "value":
> > "{\"href\":\"
> > http://localhost:8080/restful/objects/businessentities.Audit/2\"}";,
> >             "invalidReason": "Expected a link (because this object's
> > type is not a value) but found no 'href'"
> >         },
> >         "location": {
> >             "value":
> > "{\"href\":\"
> > http://localhost:8080/restful/objects/businessentities.Location/47\"}";,
> >             "invalidReason": "Expected a link (because this object's
> > type is not a value) but found no 'href'"
> >         },
> >         "x-ro-invalidReason": "Mandatory"
> >     },
> >     "status": 422,
> >     "config": {
> >         "method": "POST",
> >         "transformRequest": [
> >             null
> >         ],
> >         "transformResponse": [
> >             null
> >         ],
> >         "data": {},
> >         "url": "
> > http://localhost:8080/restful/services/domainapp.dom.BusinessEntities.
> AuditItemMenu/actions/create/invoke
> > ",
> >         "params": {
> >             "location": {
> >                 "href":
> > "http://localhost:8080/restful/objects/businessentities.Location/47";
> >             },
> >             "asset": {
> >                 "href":
> > "http://localhost:8080/restful/objects/businessentities.Asset/36";
> >             },
> >             "audit": {
> >                 "href":
> > "http://localhost:8080/restful/objects/businessentities.Audit/2";
> >             }
> >         },
> >         "headers": {
> >             "Accept": "application/json, text/plain, */*",
> >             "Authorization": "Basic ZG9tYWluYXBwLWFkbWluOnBhc3M=",
> >             "Content-Type": "application/json;charset=utf-8"
> >         }
> >     },
> >     "statusText": "Unprocessable Entity"
> > }
> >
> >
> >
> >
> > NOTE:
> >
> > If i change the args, by adding 'value' in the JSON string, i still
> > get the same error:
> >
> > var data =      {
> >         "location": {
> >           "value": {
> >             "href":
> > "http://localhost:8080/restful/objects/businessentities.Location/47";
> >           }
> >         },
> >         "asset": {
> >           "value": {
> >             "href":
> > "http://localhost:8080/restful/objects/businessentities.Asset/36";
> >           }
> >         },
> >         "audit": {
> >           "value": {
> >             "href":
> > "http://localhost:8080/restful/objects/businessentities.Audit/2";
> >           }
> >         }
> > }
> >
> >
> >
> > POST
> > http://localhost:8080/restful/services/domainapp.dom.BusinessEntities.
> AuditItemMenu/actions/create/invoke?asset=%7B%22value%22:%
> 7B%22href%22:%22http:%2F%2Flocalhost:8080%2Frestful%
> 2Fobjects%2Fbusinessentities.Asset%2F36%22%7D%7D&audit=%7B%
> 22value%22:%7B%22href%22:%22http:%2F%2Flocalhost:8080%2Frestful%2Fobjects%
> 2Fbusinessentities.Audit%2F2%22%7D%7D&location=%7B%22value%
> 22:%7B%22href%22:%22http:%2F%2Flocalhost:8080%2Frestful%
> 2Fobjects%2Fbusinessentities.Location%2F47%22%7D%7D
> > 422 (Unprocessable Entity)
> > audititemstore.js:60 error saving obj:
> > {
> >     "data": {
> >         "asset": {
> >             "value":
> > "{\"value\":{\"href\":\"
> > http://localhost:8080/restful/objects/businessentities.Asset/36\"}}";,
> >             "invalidReason": "Expected a link (because this object's
> > type is not a value) but found no 'href'"
> >         },
> >         "audit": {
> >             "value":
> > "{\"value\":{\"href\":\"
> > http://localhost:8080/restful/objects/businessentities.Audit/2\"}}";,
> >             "invalidReason": "Expected a link (because this object's
> > type is not a value) but found no 'href'"
> >         },
> >         "location": {
> >             "value":
> > "{\"value\":{\"href\":\"
> > http://localhost:8080/restful/objects/businessentities.Location/47\"}}";,
> >             "invalidReason": "Expected a link (because this object's
> > type is not a value) but found no 'href'"
> >         },
> >         "x-ro-invalidReason": "Mandatory"
> >     },
> >     "status": 422,
> >     "config": {
> >         "method": "POST",
> >         "transformRequest": [
> >             null
> >         ],
> >         "transformResponse": [
> >             null
> >         ],
> >         "data": {},
> >         "url": "
> > http://localhost:8080/restful/services/domainapp.dom.BusinessEntities.
> AuditItemMenu/actions/create/invoke
> > ",
> >         "params": {
> >             "location": {
> >                 "value": {
> >                     "href":
> > "http://localhost:8080/restful/objects/businessentities.Location/47";
> >                 }
> >             },
> >             "asset": {
> >                 "value": {
> >                     "href":
> > "http://localhost:8080/restful/objects/businessentities.Asset/36";
> >                 }
> >             },
> >             "audit": {
> >                 "value": {
> >                     "href":
> > "http://localhost:8080/restful/objects/businessentities.Audit/2";
> >                 }
> >             }
> >         },
> >         "headers": {
> >             "Accept": "application/json, text/plain, */*",
> >             "Authorization": "Basic ZG9tYWluYXBwLWFkbWluOnBhc3M=",
> >             "Content-Type": "application/json;charset=utf-8"
> >         }
> >     },
> >     "statusText": "Unprocessable Entity"
> > }
> > ---------
> >
> > 2017-09-01 14:01 GMT-04:00, L Eder <[email protected]>:
> > > Hello members:
> > >
> > > Could any one shed a light on this issue?
> > >
> > > I successful run this POST request using Postman:
> > > JSON body
> > > "
> > >       {
> > >                       "location" : {
> > >               "value" : { "href":
> > > "http://localhost:8080/restful/objects/businessentities.Location/46"; }
> > >                       },
> > >                       "asset" : {
> > >               "value" : { "href":
> > > "http://localhost:8080/restful/objects/businessentities.Asset/36"; }
> > >                       },
> > >               "audit" : {
> > >                       "value" : { "href":
> > > "http://localhost:8080/restful/objects/businessentities.Audit/2"; }
> > >                       }
> > >       }
> > > "
> > >
> > > However on javascript:
> > > "
> > >           var data =  {
> > >             "location" : {
> > >               "href" :
> > > "http://localhost:8080/restful/objects/businessentities.Location/47";
> > >             },
> > >             "asset"    : {
> > >                 "href":
> > > "http://localhost:8080/restful/objects/businessentities.Asset/36";
> > >             },
> > >             "audit"    : {
> > >                 "href" :
> > > "http://localhost:8080/restful/objects/businessentities.Audit/2";
> > >             }
> > >           }
> > >
> > >           // Post the new data
> > >           var a2 = new AuditItemCreate();
> > >           a2.$save(data);
> > >         ...
> > > "
> > >
> > > i am getting this failure (as displayed by chrome developer tools):
> > > "
> > > data:
> > > asset:
> > > invalidReason:"Expected a link (because this object's type is not a
> > > value) but found no 'href'"
> > > value:"{"href":"
> > http://localhost:8080/restful/objects/businessentities.Asset/36"}";
> > > __proto__:Object
> > > audit:
> > > invalidReason:"Expected a link (because this object's type is not a
> > > value) but found no 'href'"
> > > value:"{"href":"
> > http://localhost:8080/restful/objects/businessentities.Audit/2"}";
> > > __proto__:Object
> > > location:
> > > invalidReason:"Expected a link (because this object's type is not a
> > > value) but found no 'href'"
> > > value:"{"href":"
> > http://localhost:8080/restful/objects/businessentities.Location/47"}";
> > > __proto__:Object
> > > x-ro-invalidReason:"Mandatory"
> > > "
> > >
> > > What is wrong in this javascript code?
> > >
> > > Thank you very much, Eder
> > >
> >
>

Reply via email to