正在下载文件?

Kev*_*vin 1 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();
}
Run Code Online (Sandbox Code Playgroud)

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

Esa*_*ija 7

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

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

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

newForm.appendTo("body").submit();
Run Code Online (Sandbox Code Playgroud)