1. 程式人生 > >javaScript使用post方式代替window.location.href

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

for scrip class tex 一個 textarea ati pos 表單

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
     });                         

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