如何在Ajax中发送js数组

我创建了一个像这样的JS数组var detailsArr = new Array(); 并将一些数据推入此数组。

现在我通过Ajax将这个数组推送到我的Spring Controller中

 $.ajax({ type: "POST", url: "submit", data: ({detailsArr : detailsArr }), success: function(html){ alert( "Submitted"); } }); 

在Spring Controller端,我通过@RequestBody注释接收这个数组。 Spring Controller方法签名如下所示

 public String submit(@RequestBody String body) 

但是在Spring Controller端收到的数组基本上是这种格式的String

 detailsArr[]=add&detailsArr[]=test1&detailsArr[]=test2&detailsArr[]=test3 

我必须手动拆分此String以获取值,这是一个繁琐的过程。 有没有什么方法可以让我可以得到数组,所以我只需要迭代它来获取值。

你应该以json格式将数组传递给服务器。 并使用Json转换为对象转换器。 你可以使用Gson

客户端:

 $.ajax({ type: "POST", url: "submit", data:JSON.stringify(detailsArr), success: function(html){ alert( "Submitted"); } }); 

服务器端 :

 public String submit(@RequestBody String body){ //convert body to array using JSONLib, FlexJSON or Gson } 

将它传递给控制器​​时,传递方式如下:

 data:JSON.stringify(detailsArr); 

在您的控制器上,您可以解码收到的JSON。