在将对象发送到服务器之前无法设置对象的值

时间:2017-04-21 07:20:11

标签: angularjs

我在更新按钮上调用以下代码

  $scope.update = function (p) {
                console.log(p);
                console.log(p.id);
                console.log(p.unitPrice);
                alert("ok");
                $http({
                    method: 'POST',
                    url: 'update-product',
                    params: {product: p},
                    headers: {'Content-Type': 'application/x-www-form-urlencoded'}
                }).success(function (data, status, headers, config) {
                    console.log(data);
                    if (data.st === 1) {
                        window.location = "show-product";
                    } else {
                        $scope.msg = data.msg;
                    }
                })
                        .error(function (data, status, headers, config) {
                            alert("Opps unable to connect to server");
                        });
            }

但这不是在服务器产品对象中发送数据。

点击更新()后,它会获得以下数据 如调用log()时在控制台中所示。

Object {id: 1051, mainProduct: Object, sellingPrice: 234, unitPrice: 234, $$hashKey: "object:3"}

1051 234

来自服务器的

显示"Invalid field value for field "product"."

在服务器端

public String ProductAction extends ActionSupport{
private Product product;
//Product contains id name ...
//getter and setter
public String update(){
System.out.println(getProduct().getId());
}
}

1 个答案:

答案 0 :(得分:0)

将数据发布到服务器应该是data

 $http({
     method: 'POST',
     url: 'update-product',
     data: {product: p},     <---------  mention here
     headers: {'Content-Type': 'application/x-www-form-urlencoded'}
 })