2014-11-04 52 views
0

我想從前端應用程序發送POST請求到一個複雜的JSON對象。開機自檢時發生錯誤

後端側

我有一類名爲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

我不會rstand我的錯在哪裏。

回答

0

已解決。

我錯了兩次。

第一:

obj VAR必須沒有[]因爲代表的陣列。

所以定義var就成了:

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

第二:

$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'); 
}); 

相反Restangular現在我以這種方式使用$ HTTP