1

我有以下方法,其目的是使用不可见的表单提交发布请求。此请求是下载一个文件,该文件没有 URL,而是动态地从二进制文件存储中获取。服务器端是 Java Servlet。

function postCall(url, params) {
    var newForm = jQuery('<form>', {
            'method':'POST',
            'action': url
        });

    for(key in params) {
        if (params.hasOwnProperty(key)) {
            newForm.append(jQuery('<input>', {
                'id': key,
                'value': params[key],
                'type': 'hidden'
            }));
        }
    }

    newForm.submit();
}

调用此方法时,服务器端没有收到请求。我认为这段代码一定有问题。

4

1 回答 1

7

只有带有 aname的输入才会提交给服务器。尝试这个:

newForm.append(jQuery('<input>', {
    'name': key, //<-- change to name instead of id
    'value': params[key],
    'type': 'hidden'
}));

此外,对于 IE,您还必须在提交之前将表单附加到文档中:

newForm.appendTo("body").submit();
于 2013-07-09T15:05:49.553 回答