使用Restangular时POST错误

时间:2014-11-04 11:52:27

标签: java restangular

我想从前端应用程序发送一个带有复杂JSON对象的POST请求。

后端

我有一个名为NotificationService的类和一个名为writeNotification的方法,如下所示:

@POST
@Path(SERVICE_PATH_WRITENOTIFICATION)
public Response writeNotification(@FormParam("notification") String notification)

前端

我寄这个:

var obj = [ {
    to : $scope.formComboDestinatari.listaDestinatari,
    subject : $scope.formOggetto,
    date : "xxx",
    body : $scope.formTesto,
    type : $scope.formComboTipologia
} ];

如果我使用这种语法:

Restangular.one('serverpath/writenotification').post(obj);

当我尝试发送请求时出现此错误:

500 internal server error

如果我使用这种语法:

Restangular.one('serverpath').post('writenotification', obj);

400 Bad request

我不明白我的错在哪里。

1 个答案:

答案 0 :(得分:0)

解决。

我错了两次。

第一个:

obj var必须没有[],因为它代表一个数组。

因此定义var变为:

var obj = {
    to : $scope.formComboDestinatari.listaDestinatari,
    subject : $scope.formOggetto,
    date : "xxx",
    body : $scope.formTesto,
    type : $scope.formComboTipologia
};

第二个:

现在我使用$ http代替Restangular:

$http({
    url : "pathserver/writenotification",
    method : "POST",
    data : obj,
    headers : {
        "Content-Type" : "application/json; charset=utf-8",
        "Accept" : "application/json"
    }
}).success(function(data) {
    $scope.items = data;
    alert('Notifica inviata');
}).error(function(data) {
    alert('Invio notifica fallito');
});