如何使用 Ajax 调用将 jQuery 数组传递到 Spring 中

How to pass jQuery Array into Spring using Ajax call?

本文关键字:Spring 数组 jQuery 何使用 Ajax 调用      更新时间:2023-09-26

这是我的jQuery数组 - ansList

$("#saveAndSubmitButton").click(function(){
    var ansList=[];
    var i=0;
    for(i=0;i<queListSize;i++){
        if($("#value1"+i).is(':checked')){
            ansList.push("yes");
        }
        else if($("#value2"+i).is(':checked')){
            ansList.push("no");
        }
    }       
    goToSaveAndSubmitAction(ansList);
    }
});
function goToSaveAndSubmitAction(answersList){
var inputForSaveAndSubmit={
    ansList:answersList 
};
$.ajax({
    type:"POST",
    url:"../../restful/workflow/saveAndSubmitAction",
    data:inputForSaveAndSubmit,
    dataType:"json",
    success: function(jsonData){
        if(jsonData.success){
           alert('Inside Success');
        }

    },
    error:function (XMLHttpRequest, textStatus, errorThrown) {
          // showAlertMessage("error",textStatus);
    }
});
}

在春天,我的方法签名是

@RequestMapping(value="/workflow/saveAndSubmitAction")
public @ResponseBody String  saveAndSubmitAction(@RequestParam(value="answersList",
    required=false) String[] ansList ){
}

当我调试此代码以查看是否有任何值填充到 ansList 中时,我得到 ansList 的空值...

可能是什么问题??

你只需要让jQuery使用传统的编码方法。

$.ajax({
    type:"POST",
    url:"../../restful/workflow/saveAndSubmitAction",
    data:$.param(inputForSaveAndSubmit, true),    ,
    dataType:"json",
    success: function(jsonData){
       if(jsonData.success){
          alert('Inside Success');
       }
   },
   error:function (XMLHttpRequest, textStatus, errorThrown) {
      // showAlertMessage("error",textStatus);
   }
});

或在提交 XHR 之前调用此地址

jQuery.ajaxSettings.traditional = true;