JavaScript动态生成Form提交
function post(url, params) {
var tempForm = document.createElement("form");
tempForm.action = url;
tempForm.method = "post";
tempForm.style.display = "none";
for (var x in params) {
var opt = document.createElement("textarea");
opt.name = x;
opt.value = params[x];
// alert(opt.name) tempForm.appendChild(opt);
}
document.body.appendChild(tempForm);
tempForm.submit();
return tempForm;
} //调用方法
post('login.do', {username : xxxx, password : yyyy});
function postParamAndOpenWindow(urlAndQuery){ // 分割url和请求参数 var pos = urlAndQuery.indexOf('?') var url = urlAndQuery.substring(0, pos);
var query = urlAndQuery.substring(pos + 1);
// 动态建立Form中的数据 var tempForm = document.getElementById('tmpForm');
tempForm.action = url;
tempForm.method = "post";
var pairs = query.split("&");
for(var i = 0; i < pairs.length; i++) {
var pos = pairs[i].indexOf('=');
if (pos == -1) continue;
var argname = pairs[i].substring(0, pos);
var value = pairs[i].substring(pos + 1);
var opt = document.createElement("textarea");
opt.name = argname;
opt.value = value;
tempForm.appendChild(opt);
} tempForm.submitBtn.click();
return tempForm;
}//在页面处<a href="#" onclick="postParamAndOpenWindow("http://www.xxx.com/login?username=xxx&password=yyy');">
项目中,我们一般都是写上隐藏的form标签,用<a href="#" οnclick="..."/>来调用js函数,给form中表单要提交的内容赋值,然后submit提交。如果页面没有隐藏的form,我们可以用JavaScript动态生成Form提交,或者只有一个隐藏form,动态生成要传递的参数。
————————————————
版权声明:本文为CSDN博主「iteye_16906」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/iteye_16906/article/details/81890001
事常与愿违,事亦在人为