首頁  >  文章  >  web前端  >  詳解form標籤中的method屬性

詳解form標籤中的method屬性

Y2J
Y2J原創
2017-05-20 10:23:263189瀏覽

實例

在下面的例子中,表單資料將透過method 屬性附加到URL 上:

<form action="form_action.asp" method="get">
  <p>First name: <input type="text" name="fname" /></p>
  <p>Last name: <input type="text" name="lname" /></p>
  <input type="submit" value="Submit" />
</form>

定義和用法

method 屬性規定如何傳送表單數據(表單資料傳送到action 屬性所規定的頁面)。

表單資料可以作為 URL 變數(method="get")或 HTTP post (method="post")的方式來傳送。

method 屬性

瀏覽器使用 method 屬性設定的方法將表單中的資料傳送給伺服器進行處理。共有兩種方法:POST 方法和 GET 方法。

如果採用 POST 方法,瀏覽器將會依照下面兩步驟來傳送資料。首先,瀏覽器將與 action 屬性中指定的表單處理伺服器建立聯繫,一旦建立連線之後,瀏覽器就會以分段傳輸的方法將資料傳送給伺服器。

在伺服器端,一旦POST 樣式的應用程式開始執行時,就應該從一個標誌位置讀取參數,而一旦讀到參數,在應用程式能夠使用這些表單值以前,必須對這些參數進行解碼。使用者特定的伺服器會明確指定應用程式應該如何接受這些參數。

另一種情況是採用GET 方法,這時瀏覽器會與表單處理伺服器建立連接,然後直接在一個傳輸步驟中發送所有的表單資料:瀏覽器會將資料直接附在表單的action URL 之後。這兩者之間用問號分隔。

一般瀏覽器透過上述任何一種方法都可以傳輸表單訊息,而有些伺服器只接受其中一種方法提供的資料。可以在

標籤的 method (方法)屬性中指明表單處理伺服器要用方法來處理數據,是 POST 還是 GET。

POST 還是 GET?

如果表單處理伺服器既支援 POST 方法又支援 GET 方法,那麼你該選擇哪一種方法呢?以下是關於這方面的一些規則:

    ●    如果希望獲得最佳表單傳輸效能,可以採用 GET 方法傳送只有少數簡短欄位的小表單。

    ●    一些伺服器作業系統在處理可以立即傳遞給應用程式的命令列參數時,會限制其數目和長度,在這種情況下,對那些有許多欄位或是很長的文字域的表單來說,就應該採用POST 方法來傳送。

    ●    如果你在編寫伺服器端的表單處理應用程式方面經驗不足,應該選擇 GET 方法。如果採用 POST 方法,就要在讀取和解碼方法做些額外的工作,也許這並不很難,但是也許你不太願意去處理這些問題。

   ●     如果安全性是個問題,那麼我們建議選用 POST 方法。 GET 方法將表單參數直接放在應用程式的 URL 中,這樣網路窺探者可以輕鬆地擷取它們,也可以從伺服器的日誌檔案中進行摘錄。如果參數中包含了信用卡帳號這樣的敏感訊息,就會在不知不覺中危及用戶的安全。而 POST 應用程式就沒有安全性方面的漏洞,在將參數作為單獨的事務傳輸給伺服器進行處理時,至少還可以採用加密的方法。

    ●    如果想在表單之外呼叫伺服器端的應用程序,而且包括向其傳遞參數的過程,就要採用 GET 方法,因為該方法允許把表單這樣的參數包括進來作為 URL 的一部分。而另一方面,使用 POST 樣式的應用程式卻希望在 URL 後還能有一個來自瀏覽器額外的傳輸過程,其中傳輸的內容不能作為傳統 標籤的內容。

    

明確傳遞參數

前面的一些建议也可以作为选择此种方式的一定解释。假设你有一个很简单的表单,其中只包含 x 和 y 这两个参数。在对这些元素的值进行编码时,它们的形式如下所示:

x=28&y=66

如果表单采用了 method=GET,那么用来引用服务器端应用程序的 URL 将如下所示:

http://www.example.com/example/program?x=28&y=66

在任何时候我们都可以创建一个传统的 标签,用它在调用带有所需参数值的表单,其形式如下所示:

唯一的问题是,分隔参数所用的 & 符号也是字符实体中的插入符号。如果在 标签的 href 属性中放入一个 & 符号,浏览器就会将其后面的字符替换成相应的字符实体。

为了防止出现这种情况,我们必须用它的实体对等物来替换 & 符号,也就是用 "&" 或 "&" 来替换。替换之后,上面的那个引用服务器应用程序的非表单示例将如下所示:

由于这样还是不能在 URL 中使用 & 符号,并且有可能在将来带来混乱,因此我们鼓励服务器设置最后也能够接受用分号作为参数分隔符。您也可以看看自己的服务器文档,了解服务器是否支持这种功能。

语法

<form target="value">

属性值

詳解form標籤中的method屬性

【相关推荐】

1. HTML免费视频教程

2. 带你掌握HTML中table和form表单

3. 详解html中form表单的参数和属性

4. 详解form标签中的method属性

5. 详解form表单的工作过程

以上是詳解form標籤中的method屬性的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn