javaScript使用post方式代替window.location.href

window.location.href可以简单粗暴的实现文件下载,Excel导出等。。。但是该方式传参数有着太多不安全因素,例如:将一些重要信息暴露给地址栏亦或者是由于参数过长导致无法访问等等。

以下是使用post代替window.location.href的实现,大体思路是将参数封装成一个隐藏的Form,然后form.submit()的方式来提交

/**
 * @author lwh
 * @param {} url
 * @param {} params
 */
function mypost(url, params) { 
    // 创建form
    var temp_form = document.createElement("form");
    // 设置form
    temp_form .action = url;      
    temp_form .target = "_self";
    temp_form .method = "post";      
    temp_form .style.display = "none";
    // 处理需要传递的参数 
    for (var x in params) { 
        var opt = document.createElement("textarea");      
        opt.name = x;      
        opt.value = params[x];      
        temp_form .appendChild(opt);      
    }      
    document.body.appendChild(temp_form);
    // 提交表单      
    temp_form .submit();     
} 

 调用

 var  url=contextPath+"xxxxxx.action";
     mypost(url,{
	 param1:value1,
         param2:value2,
         ......
         paramN:valueN
     });                         

 

posted on 2019-03-05 16:45  techno-geek  阅读(565)  评论(0编辑  收藏  举报