前端:JS使用POST方式进行跳转

function post(URL, PARAMS) {      
    var temp = document.createElement("form");      
    temp.action = URL;      
    temp.method = "post";      
    temp.style.display = "none";      
    for (var x in PARAMS) {      
        var opt = document.createElement("textarea");      
        opt.name = x;      
        opt.value = PARAMS[x];       
        temp.appendChild(opt);      
    }      
    document.body.appendChild(temp);      
    temp.submit();      
    return temp;      
}      
     
//调用方法 如      
post('pages/statisticsJsp/excel.action', {html :prnhtml,cm1:'sdsddsd',cm2:'haha'});

post方式提交参数并下载文件:
正常情况下下载用windows.open(URL),若想用post传参可以用如下方式,生成action为URL的表格,然后利用form传参并跳转,由于跳转URL实际上是被下载的文件,所以浏览器会开始下载并保留原来页面(不确定?)。

var temp = document.createElement("form");      
temp.action = "catalogDetail.do?method=Download";      
temp.method = "post";      
temp.style.display = "none";  
var PARAMS = {
	"cata_id" : $("input[name='cata_id']").val(),
	"where" : filter_condition.where,
	"columns" : $("#gaojishaixuan_fenzu_column").val()
};
for (var x in PARAMS) {      
    var opt = document.createElement("textarea");      
    opt.name = x;      
    opt.value = PARAMS[x];       
    temp.appendChild(opt);      
}      
document.body.appendChild(temp);      
temp.submit();
$(temp).remove();   
posted @ 2019-01-11 09:34  xuejianbest  阅读(4134)  评论(0编辑  收藏  举报