1. 程式人生 > 其它 >jQuery模擬form表單提交Http請求,並實現跳轉到新視窗開啟頁面

jQuery模擬form表單提交Http請求,並實現跳轉到新視窗開啟頁面

技術標籤:# Javascript

導讀:

一些特殊的應用場景,需要在jquery裡實現對後端的訪問請求,同時在新視窗中開啟頁面。大家可能會第一時間想到以下方法:

1、用window.open(),然後get提交請求,這個當然可以,基本滿足要求,但弊端是會暴露我們的資料,特別是資料比較敏感時,就不建議使用。

2、第一個方法不可行的情況下,大家可能都想到要用ajax,畢竟ajax在請求後端業務方面有天然的優勢,但問題是ajax是互動型的,不會在新視窗中開啟頁面,所以ajax並不符合我們此時的場景需求。

綜合以上分析,我們需要使用另一種方式,也就是模擬form表單,實現post提交,並開啟新視窗。

程式碼如下:

/**
 *模擬form表單,實現post提交,並開啟新視窗
 * url:請求連結
 * postData:json格式的post引數
 */
function formpost(url, postData) { 
	var tempform = document.createElement("form");      
    tempform.action = url;      
    tempform.target = "_blank";
    tempform.method = "post";      
    tempform.style.display = "none"; 
	for (var x in postData) { 
		var opt = document.createElement("textarea");      
		opt.name = x;      
        opt.value = postData[x];      
        tempform.appendChild(opt);      
    }      
    document.body.appendChild(tempform);
    tempform.submit();     
} 

呼叫示例:

//模擬表單post提交,並開啟新視窗
formpost("http://18pay.net/order/debug.html",{'id' :1});