場景:前置的查詢頁面,選擇查詢條件后提交到另一個頁面。
方式很多,列出我知道的幾種
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(); }