使用angularjs中的POST发送完整对象

时间:2015-12-01 15:39:44

标签: javascript java angularjs web-services post

我有这个网络服务:

@POST
@Path("/addObj")
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
public static void addObj(@FormParam("obj1") final Obj1 obj1, 
            @FormParam("obj2") final Obj2 obj2) {
    ...
}

我想用它:

    $scope.addObj1= function (obj1, obj2) {
    $http({
        method: "POST",
        url: "mobile/addObj",
        data: $.param({
           obj1: obj1, //or even: "obj1": obj1
           obj2: obj2 //or even: "obj2": obj2
        }),
        headers: {"Content-Type": "application/x-www-form-urlencoded"}
    }).then(
            function(response){
                ...
            }, function(error) {...});  
};

Obj1是这样的:

@XmlRootElement(name = "Obj1")
@XmlAccessorType(XmlAccessType.FIELD)
public class Obj1 implements Serializable{
    private field1;
    private List<Obj2> listObj2;
    ...
}

我真的无法弄清楚如何使用它。 (addObj java函数中的两个对象都为null)

是否可以使用此帖子发送整个对象(obj1和obj2)?

我尝试使用不同的方式编写它,不同的MediaType,ContentType ......

感谢您的帮助。

有关信息:

Forma数据:

文章%5Bcode%5D = VA0004&安培;文章%5Bnom%5D = LOCATION + IPAD&安培;文章%5Bprix%5D = 7.5&安培;文章%5Bstock%5D = 0&安培;文章%5B%24%24hashKey%5D = 00O < / p>

Article = Obj1

class Artcile () {String code, String nom, Double prix, Double stock}

请求标题:

  

POST / espace-conciergerie-front / mobile / addObj HTTP / 1.1

     

主持人:localhost:8080

     

连接:保持活力

     

内容长度:129

     

接受:application / json,text / plain, /

     

原产地:http://localhost:8080

     

User-Agent:Mozilla / 5.0(Windows NT 6.1; WOW64)AppleWebKit / 537.36(KHTML,与Gecko一样)Chrome / 46.0.2490.86 Safari / 537.36

     

内容类型:application / x-www-form-urlencoded

     

参考者:http://localhost:8080/espace-conciergerie-front/monEspace.action

     

Accept-Encoding:gzip,deflate

     

接受语言:fr-FR,fr; q = 0.8,en-US; q = 0.6,en; q = 0.4

     

Cookie:JSESSIONID = 1D98F69A79EEB041391D374E066688CE

0 个答案:

没有答案