在JavaScript中使用GET方式提交請求,親測可用。。。
阿新 • • 發佈:2019-01-01
在使用jsp+Servlet做一個分頁效果時,遇到了JavaScript使用get方式傳送請求的問題,具體效果如下圖:
點選轉到按鈕,呼叫js的函式,把頁碼引數傳給Servlet,Servlet接收的提交方式是get,所以想要在JavaScript中使用get提交,在網上找了很多方法,都是不行的(PS:很多部落格的文字篇幅很長,都很類似,而且都是一堆廢話,最重要的是試了都沒用,汗……)。
在翻看了JavaScript的API之後,發現JavaScript中的一個物件可以實現跳轉,Location 物件包含有關當前 URL 的資訊。該物件提供了三個方法:
assign() 載入一個新的文件
reload() 重新載入當前文件
replace() 用新的文件替換當前文件
使用第一個方法location.assign(url)就可以實現頁面跳轉了,而且是get方式提交。該物件除了提供頁面跳轉的方法之外,還提供了獲取當前頁面URl資訊的屬性:
hash 返回一個URL的錨部分
host 返回一個URL的主機名和埠
hostname 返回URL的主機名
href 返回完整的URL
pathname 返回的URL路徑名。
port 返回一個URL伺服器使用的埠號
protocol 返回一個URL協議
search 返回一個URL的查詢部分
具體實現的程式碼如下:
跳到<input id="page" type="text" size="1"/>頁
<input type="button" onclick="pageGo()" value="轉到">
<script type="text/javascript">
function pageGo(){
var tp = "${pb.tp}";//獲取jsp中EL表示式的變數,總頁數
var page = document.getElementById("page").value;//獲取頁碼
if(Number(page)>0 && Number(page) <= tp){
var path = location.pathname+"?pc="+page;
location.assign(path);//提交URL
}
}
</script>