摘要:格式支持比鍵值對復雜得多的結構化數據,這一點也很有用。例如下面這段代碼最終發送的請求是這種方案,可以方便的提交復雜的結構化數據,特別適合的接口。
簡介
form的enctype屬性為編碼方式,常用有兩種:application/x-www-form-urlencoded和multipart/form-data,默認為application/x-www-form-urlencoded。
當action為get時候,瀏覽器用x-www-form-urlencoded的編碼方式把form數據轉換成一個字串(name1=value1&name2=value2...),然后把這個字串append到url后面,用?分割,加載這個新的url。
當action為post時候,瀏覽器把form數據封裝到http body中,然后發送到server。如果沒有type=file的控件,用默認的application/x-www-form-urlencoded就可以了。 但是如果有type=file的話,就要用到multipart/form-data了。瀏覽器會把整個表單以控件為單位分割,并為每個部分加上Content-Disposition(form-data或者file),Content-Type(默認為text/plain),name(控件name)等信息,并加上分割符(boundary)。
根據查找的資料得到如下總結:
application/x-www-form-urlencoded: 窗體數據被編碼為名稱/值對。這是標準的編碼格式。
multipart/form-data: 窗體數據被編碼為一條消息,頁上的每個控件對應消息中的一個部分。
text/plain: 窗體數據以純文本形式進行編碼,其中不含任何控件或格式字符。
HTTP/1.1 協議規定的 HTTP 請求方法有 OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE、CONNECT 這幾種。其中 POST 一般用來向服務端提交數據,本文主要討論 POST 提交數據的幾種方式。
我們知道,HTTP 協議是以 ASCII 碼傳輸,建立在 TCP/IP 協議之上的應用層規范。規范把 HTTP 請求分為三個部分:狀態行、請求頭、消息主體。類似于下面這樣:
協議規定 POST 提交的數據必須放在消息主體(entity-body)中,但協議并沒有規定數據必須使用什么編碼方式。實際上,開發者完全可以自己決定消息主體的格式,只要最后發送的 HTTP 請求滿足上面的格式就可以。
但是,數據發送出去,還要服務端解析成功才有意義。一般服務端語言如 php、python 等,以及它們的 framework,都內置了自動解析常見數據格式的功能。服務端通常是根據請求頭(headers)中的 Content-Type 字段來獲知請求中的消息主體是用何種方式編碼,再對主體進行解析。所以說到 POST 提交數據方案,包含了 Content-Type 和消息主體編碼方式兩部分。
是什么決定了表單的編碼?熟悉表單元素
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/89501.html
摘要:以下引用,摘自規范的章節這不就是我們在回調函數里判斷返回數據的類型,并且是在請求頭中的那個玩意兒嗎沒錯就是它根據規范的基礎數據類型的說明,這個指定了連接資源的屬性,同時也是的那些媒體類型。今天掰扯完了表單提交時的編碼類型,以及它和的關系。 很早以前,當還沒有前端這個概念的時候,我在寫表單提交完全不去理會表單數據的編碼,在action屬性里寫好目標URL,剩下的啊交給瀏覽器吧~但是現在,...
摘要:用于或元素時,將提交指定的表單示例代碼只能上傳圖片只能上傳視頻使用的屬性,是一個類型的值,或文件后綴名。在以前,要想改變表單元素外觀,需要通過其他標簽來模擬。以下點到名的表單元素,還是可以照常使用的。 做為html中最為常見,應用最廣泛的標簽之一,form常伴隨前端左右。了解更深,用的更順。 表單屬性 這個表單展示了form表單常用的屬性 屬性名 屬性值 ...
摘要:表單用于向服務器傳輸數據。屬性對象的屬性指定了一個事件句柄函數。標簽的屬性應當與相關元素的屬性相同。詳情查閱請狠狠地點擊關于對象代表表單中的一個提交按鈕在表單提交之前,觸發事件句柄,并且一個句柄可以通過返回來取消表單提交。 系列文章 關于前端上傳文件全面基礎掃盲貼(零)關于前端上傳文件全面基礎掃盲貼(一) ----- XMLHttpRequest關于前端上傳文件全面基礎掃盲貼(二) -...
閱讀 1352·2021-09-24 10:26
閱讀 3664·2021-09-06 15:02
閱讀 616·2019-08-30 14:18
閱讀 581·2019-08-30 12:44
閱讀 3124·2019-08-30 10:48
閱讀 1946·2019-08-29 13:09
閱讀 2001·2019-08-29 11:30
閱讀 2288·2019-08-26 13:36