JavaScript 以POST方式打開新頁面


場景:前置的查詢頁面,選擇查詢條件后提交到另一個頁面。

方式很多,列出我知道的幾種

1.window.open.

2.Response.Redirect.

3.Server.Transfer.

方法一和方法二都存在同樣的問題,因為是get方式提交的,所以提交的數據都會顯示URL中,一個是安全問題,另外一個是URL長度限制,在IE中,URL最大長度為2083.所以數據量過多時會導致數據丟失。

於是考慮到通過POST方式傳遞參數。

        /*
        *功能: JS跳轉頁面,並已POST方式提交數據
        *參數: URL 跳轉地址 PARAMTERS 參數
        *返回值:
        *創建時間:20160713
        *創建人: 
        */
        function ShowReport_Click() {

            var parames = new Array();
            parames.push({ name: "param1", value: "param1"});
            parames.push({ name: "param2", value: "param2"});

            Post("SupplierReportPreview.aspx", parames);

            return false;
        }

        /*
        *功能: 模擬form表單的提交
        *參數: URL 跳轉地址 PARAMTERS 參數
        *返回值:
        *創建時間:20160713
        *創建人: 
        */
        function Post(URL, PARAMTERS) {
            //創建form表單
            var temp_form = document.createElement("form");
            temp_form.action = URL;
            //如需打開新窗口,form的target屬性要設置為'_blank'
            temp_form.target = "_self";
            temp_form.method = "post";
            temp_form.style.display = "none";
            //添加參數
            for (var item in PARAMTERS) {
                var opt = document.createElement("textarea");
                opt.name = PARAMTERS[item].name;
                opt.value = PARAMTERS[item].value;
                temp_form.appendChild(opt);
            }
            document.body.appendChild(temp_form);
            //提交數據
            temp_form.submit();
        }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM