我正在尝试将 json 数据从 Angular Post 发送到 Spring Controller ,但在控制台中收到 404 :
POST http://localhost:8080/app/orderDetails/saveOrder/[object%20Object],[object%20Object] 404 (Not Found)
JS
var i=0;
var j = ngCart.getCart().items.length;
$scope.list=[];
for(i;i<j;i++){
$scope.list.push({
'id': ngCart.getCart().items[i]._id,
'quantity':ngCart.getCart().items[i]._quantity
});
}
$http.post("/app/orderDetails/saveOrder/"+$scope.list)
Java(Spring)
@RequestMapping(value = "/saveOrder/list",headers="Accept=application/json")
public @ResponseBody Object saveOrder(@PathVariable List list){
}
最佳答案
您不能将List
用作PathVariable
。改为 RequestBody
并修复您的 JS 代码以将 $scope.list
作为正文发送,而不是将其附加到 url:
-$http.post("/app/orderDetails/saveOrder/"+$scope.list)
+$http.post("/app/orderDetails/saveOrder", $scope.list);
还创建一个带有 id
和 quantity
字段的包装对象,例如:
public class CartItem {
private Long id;
private Long quantity;
//getters and setters
}
然后您将能够使用此对象参数化您的List
:
- public @ResponseBody Object saveOrder(@PathVariable List list){
+ public @ResponseBody Object saveOrder(@RequestBody List<CartItem> list){
关于java - 发送Json数据到Spring Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45613132/