application/x-www-form-urlencoded multipart/form-data text/plain 的區別和作用

來源:互聯網
上載者:User

標籤:style   class   code   ext   color   http   

我們知道在通過POST方式向伺服器發送AJAX請求時最好要通過佈建要求頭來指定為application/x-www-form-urlencoded編碼類別型。知道通過表單上傳檔案時必須指定編碼類別型為"multipart/form-data"。而text/plain是我們在做純文字傳輸時防止接收資料時出現編碼混亂而設定的。可是我一直沒有搞清楚為什麼要這麼設定。後來查了些資料才找到了三者的區別。

application/x-www-form-urlencoded

這是通過表單發送資料時預設的編碼類別型。我們沒有在from標籤中設定enctype屬性時預設就是application/x-www-form-urlencoded類型的。application/x-www-form-urlencoded編碼類別型會把表單中發送的資料編碼為成對的名稱和數值。這是標準的編碼格式。當表單的ACTION為POST的時候,瀏覽器把form資料封裝到http body中,然後發送到伺服器。當表單的ACTION為GET的時候,application/x-www-form-urlencoded編碼類別型會把表單中發送的資料轉換成一個字串(name=coderbolg&key=php),然後把這個字串附加到URL後面,並用?分割,接著就請求這個新的URL。當我們通過POST方式向伺服器發送AJAX請求時最好要通過佈建要求頭來指定為application/x-www-form-urlencoded編碼類別型。方法是在xmlobject.open()方法之後添加

xmlobject.setRequestHeader("Content-Type","application/x-www-form-urlencoded")

不然伺服器會接收不到POST過來的資料。

 

multipart/form-data

這個是專門用來傳輸特殊類型資料的,如我們上傳的非文本的內容,比片或者MP3等。multipart/form-data編碼類別型會把表單中的發送的資料編碼為一條訊息,頁面上每個表單控制項對應訊息中的一部分。當表單中有file類型控制項並希望它正常工作的話(廢話吧)就必須設定成multipart/form-data類型,瀏覽器會把整個表單以控制項為單位分割,並為每個部分加上Content-Disposition(form-data或者file),Content-Type(預設為text/plain),name(控制項 name)等資訊,並加上分割符(boundary)。

text/plain

資料以純文字形式進行編碼,其中不含任何控制項或格式字元。沒有什麼好說的。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.