我正在尝试序列化我的表单(JSP/Struts 1.1)并将其放入对象或映射或任何 jQuery 的 .getJSON() 方法需要的东西中。这是我的js代码:
// This function makes an AJAX call, passing the entire form to the Action class
function ajaxCallWithForm(inputURL, formName, onReturnFunction)
{
    var formAsMap = serializeForm(formName);     
    $.getJSON(inputURL, formAsMap, onReturnFunction);
}
function serializeForm(formName)
{
    var obj = {};
    var a = $('#'+formName).serializeArray();
    $.each(a, function() {
        if (obj[this.name] !== undefined) {
            if (!obj[this.name].push) {
                obj[this.name] = [obj[this.name]];
            }
            obj[this.name].push(this.value || '');
        } else {
            obj[this.name] = this.value || '';
        }
    });
    return obj;
}
这会在java.lang.IllegalArgumentException后端产生一个(与 BeanUtils.populate servlet 方法有关)。  
如果我将 .getJSON() 调用的 3 个参数中的第 2 个设置为这样的参数,它可以正常工作,并且数据会显示在我的 Java 后端的表单对象中:
// This function makes an AJAX call, passing the entire form to the Action class
function ajaxCallWithForm(inputURL, formName, onReturnFunction)
{
    $.getJSON(inputURL, {"vehicleKeyNum":12345,
                         "vehicleID":"12345",
                         "rand":Math.random()}, 
        onReturnFunction);
}
我还尝试使用正确的语法创建一个字符串,该字符串包含来自表单的数据并导致相同的结果。我可能有我的语法错误。无论如何,我的主要问题是:
1) .getJSON() 方法接受“随请求发送到服务器的地图或字符串”。作为它的第二个参数(见http://api.jquery.com/jQuery.getJSON/)
2)我正在传递我认为是“地图”的东西
3)我得到一个java.lang.IllegalArgumentException,不知道从这里去哪里