简体   繁体   中英

How to send js array in Ajax

I have created a JS array like this var detailsArr = new Array(); and pushing some data into this array.

Now i push this array via Ajax to my Spring Controller like this

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

At the Spring Controller side , i receive this array through the @RequestBody annotation. The Spring Controller method signature looks like this

public String submit(@RequestBody String body) 

But the array when received at the Spring Controller side is basically a String of this format

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

I have to manually split this String to get the values, this is a cumbersome process. Is there any way in which I can get the array as it is , so that I just have to iterate over it to get the values.

you should pass your array to server in json format. And convert it by using Json to object converter. you can use Gson .

client side:

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

server side :

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

When passing it to your controller, pass it like this:

data:JSON.stringify(detailsArr);

At your controller, you can then decode the JSON received.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM