1. 程式人生 > >js 用 window.open()方法跳轉到新頁面並且用post方式傳參

js 用 window.open()方法跳轉到新頁面並且用post方式傳參

今天開發一個功能,需要從js跳轉到新的頁面上去,原先的方式是用

window.open('statistic/hospitalDetailStatisc?opid=' +urlEncode(ipid)); 這種方法當然是可以的 ,但是 這種方法其實是用get方式傳遞引數的,opid=142 這種引數會在 位址列顯示出來,造成了id洩密,這樣做是不安全的,別人可以手動輸入新的id去查詢他不能查的資料,於是就想到了用post方式來傳引數,於是用一下方法,可以實現:

一下函式可以根據自己的實際需要,新增引數個數,我這裡只需要用到一個引數,所以,我就只是用了data1。

function openPostWindow(url,data1){

    var tempForm = document.createElement("form");
    tempForm.id = "tempForm1";
    tempForm.method = "post";
    tempForm.action = url;
    tempForm.target="_blank"; //開啟新頁面
    var hideInput1 = document.createElement("input");
    hideInput1.type = "hidden";
    hideInput1.name="opid"; //後臺要接受這個引數來取值

    hideInput1.value = data1; //後臺實際取到的值
    /*var hideInput2 = document.createElement("input");
    hideInput2.type = "hidden";
    hideInput2.name="xtmc";
    hideInput2.value = data2;*/  這裡就是如果需要第二個引數的時候可以自己再設定

    tempForm.appendChild(hideInput1);
    //tempForm.appendChild(hideInput2);
    if(document.all){
        tempForm.attachEvent("onsubmit",function(){});        //IE
    }else{
        var subObj = tempForm.addEventListener("submit",function(){},false);    //firefox
    }
    document.body.appendChild(tempForm);
    if(document.all){
        tempForm.fireEvent("onsubmit");
    }else{
        tempForm.dispatchEvent(new Event("submit"));
    }
    tempForm.submit();
    document.body.removeChild(tempForm);
}