前面的話

  現(xiàn)代Web應(yīng)用中頻繁使用的一項(xiàng)功能就是表單數(shù)據(jù)的序列化,XMLHttpRequest 2級(jí)為此定義了FormData類(lèi)型。FormData為序列化表單以及創(chuàng)建與表單格式相同的數(shù)據(jù)提供了便利。本文將先介紹表單編碼,然后過(guò)渡到表單序列化,最后引出FormData的核心概念

 

表單編碼

  當(dāng)用戶提交表單時(shí),表單中的數(shù)據(jù)(每個(gè)表單元素的名字和值)編碼到一個(gè)字符串中并隨請(qǐng)求發(fā)送。默認(rèn)情況下,HTML表單通過(guò)POST方法發(fā)送給服務(wù)器,而編碼后的表單數(shù)據(jù)則用做請(qǐng)求主體

  對(duì)表單數(shù)據(jù)使用的編碼方案相對(duì)簡(jiǎn)單:對(duì)每個(gè)表單元素的名字和值執(zhí)行普通的URL編碼(使用十六進(jìn)制轉(zhuǎn)義碼替換特殊字符),使用等號(hào)把編碼后的名字和值分開(kāi),并使用"&"符號(hào)分開(kāi)名/值對(duì)。一個(gè)簡(jiǎn)單表單的編碼如下所示

find=pizza&zipcode=01234&radius=1km

  表單數(shù)據(jù)編碼格式有一個(gè)正式的MIME類(lèi)型

application/x-www-form-urlencoded

  當(dāng)使用POST方法提交這種順序的表單數(shù)據(jù)時(shí),必須"Content-Type"請(qǐng)求頭為這個(gè)值

  [注意]這種類(lèi)型的編碼并不需要HTML表單,在Ajax應(yīng)用中,希望發(fā)送給服務(wù)器的很可能是一個(gè)javascript對(duì)象

  前面展示的數(shù)據(jù)變成javascript對(duì)象的表單編碼形式可能是:

        		

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開(kāi)發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式