从javascript Http请求获取Java List <string>

时间:2016-02-29 16:18:12

标签: javascript java angularjs json

我正在使用带有Spring MVC框架的Java后端,我有一个服务,它接受一个List并删除数据库中的一些对象。当我使用Postman时,我发送下一个JSON对象:

["ce8249aa-1ede-40b9-a158-d2c417c23df7",
"73a629b9-bae8-44aa-83c3-e8ee0fc96325",
"50c45e52-2c74-40ec-93e7-1b5379eae5db",
"c8a61e92-bc6d-47d0-a3e2-bda9ad85cecc"]

然后我在Angularjs中使用了一个发送此对象的服务:

$scope.accounts = new Array("ce8249aa-1ede-40b9-a158-d2c417c23df7",
"73a629b9-bae8-44aa-83c3-e8ee0fc96325",
"50c45e52-2c74-40ec-93e7-1b5379eae5db",
"c8a61e92-bc6d-47d0-a3e2-bda9ad85cecc");

但我收到了这个错误:

  

客户端发送的请求在语法上是不正确的。

其他JSON对象不会出现此问题,例如:

来自邮递员:

{
    "accountName":"XxxxxXXxxxx",
    "paymentMethodMain":"Medio Pago",
    "accountType":"xx",
    "accountNumber":"123456AA"
}           

来自Angular:

 $scope.account = {
     "accountName":"XxxxxXXxxxx",
     "paymentMethodMain":"Medio Pago",
     "accountType":"xx",
     "accountNumber":"123456AA"
};

在这种情况下,一切正常。

1 个答案:

答案 0 :(得分:0)

我认为你不能发布像这样的数组。您必须将数组作为字符串/文本发送到请求正文中,并在服务器端解析或执行类似

的操作
$scope.accounts = new Array("ce8249aa-1ede-40b9-a158-d2c417c23df7",
"73a629b9-bae8-44aa-83c3-e8ee0fc96325",
"50c45e52-2c74-40ec-93e7-1b5379eae5db",
"c8a61e92-bc6d-47d0-a3e2-bda9ad85cecc");
 // in your request send the array as value to a json key
{data: $scope.accounts }

在您的服务器中尝试

request.getParameterValues("data[]");