1. 程式人生 > >關於請求方式為GET的form表單,action屬性後不能帶引數的問題

關於請求方式為GET的form表單,action屬性後不能帶引數的問題

  若在頁面中有如下程式碼:

<form action="XXX?name=Jack&age=10">
<input type="text" name="address" value="Beijing"/>
<input type="hidden" name="sex" value="male"/>
<input type="submit" value="submit"/>
</form>

  那麼後臺無法獲取action屬性中的name和age引數。這是因為瀏覽器會將表單中的資料封裝為字串,例如會將上面的address和sex屬性封裝為address=Beijing&sex=male,然後將其直接附加在action的URL之後

,URL和封裝後的字串之間會有一個‘?’分隔。如果在表單的action屬性中已經包含了引數,瀏覽器會直接將其過濾掉,再附加form表單資料。所以請求方法為GET的表單,其action屬性中不能攜帶引數,如果要實現引數的傳遞,有如下三種方式:
  1、使用POST方式進行傳遞,可以在action中新增引數;
  2、如果要用GET方式,那麼可以採用上述的方式,通過表單資料進行傳遞,例如:

<input type="hidden" name="name" value="Jack"/>
<input type="text" name="age" value="10"/>

  3、使用超連結(超連結預設的請求方式為GET):

<a href="XXX?name=Jack&age=10">提交</a>