我想从前端应用程序发送一个带有复杂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
我不明白我的错在哪里。
答案 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');
});