我有以下方法,其目的是使用不可见的表单提交帖子请求。此请求是下载一个文件,该文件没有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();
}
调用此方法时,服务器端未收到请求。我认为这段代码一定有问题。
答案 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();