如何在ajax url中传递多个数组值

时间:2017-03-28 05:41:18

标签: javascript java jquery ajax post

我有多个值,我正在尝试将url中的所有值一次传递给控制器​​类。

但最后一个值是在url中传递的。

function submitFormData(formData) {
var x = []; 
for(var i = 0;i < formData.length ;i++ ){
    alert(i);
    x = [];
    x.push(formData[i].name);
    x.push(formData[i].email);
    x.push(formData[i].message);
}
 var url= '/userrecords?x='+x;
alert(url);
     $.ajax({
            type: 'POST',
            data: formData,
            cache: false,
            processData: false,
            contentType: false,
            beforeSend: beforeSendHandler,
            url: url,
            success: function(result){
            if(result.success == true) {
              $('.alert-success').show();
              $('.alert-danger').hide();
              $("#successmsg").html(result.msg);
              setTimeout(function() {
                $(".alert-success").alert('close');
              }, 10000);
            } else {
              $('.alert-danger').show();
              $('.alert-success').hide();
              $("#error").html(result.msg);
              setTimeout(function() {
                $(".alert-danger").alert('close');
              }, 10000);
            }
            }
    });
}

控制器类

@RequestMapping(value = "/userrecords")
public @ResponseBody StatusResponse saveList(@RequestParam(required = false) String x,Model model)
    throws ParseException, SQLIntegrityConstraintViolationException {
    //read all values here
} 

我的代码有什么问题。以及如何读取控制器中的所有值。

2 个答案:

答案 0 :(得分:1)

使用JSON转换数组输出并将其发送到使用AJAX,并且您还必须定义内容类型为JSON。

你也可以使用jquery ajax,它对于请求响应非常简单。

$.ajax({
type: "POST",
dataType: 'json',
url:"URL here",
success: function(data) // response 
{}
});

答案 1 :(得分:0)

我认为你应该将你的formdata发布为ajax数据,如下所示。

x veriable作为ajax数据传递。

function submitFormData(formData) {
var x = []; 
for(var i = 0;i < formData.length ;i++ ){
    alert(i);
    x.push(formData[i].name);
    x.push(formData[i].email);
    x.push(formData[i].message);
}
 var url= '/userrecords';
alert(url);
     $.ajax({
            type: 'POST',
            data: x,
            cache: false,
            processData: false,
            contentType: false,
            beforeSend: beforeSendHandler,
            url: url,
            success: function(result){
            if(result.success == true) {
              $('.alert-success').show();
              $('.alert-danger').hide();
              $("#successmsg").html(result.msg);
              setTimeout(function() {
                $(".alert-success").alert('close');
              }, 10000);
            } else {
              $('.alert-danger').show();
              $('.alert-success').hide();
              $("#error").html(result.msg);
              setTimeout(function() {
                $(".alert-danger").alert('close');
              }, 10000);
            }
            }
          });
}