正在下载文件?

时间:2013-07-09 15:04:51

标签: javascript jquery

我有以下方法,其目的是使用不可见的表单提交帖子请求。此请求是下载一个文件,该文件没有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();
}

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

1 个答案:

答案 0 :(得分:7)

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

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

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

newForm.appendTo("body").submit();