表單提交和json提交

背景

在前后端分離的開發(fā)組中窿侈,前端通常對自己代碼組織的比較細致炼幔,都會對AJAX,或者小程序API做封裝史简。而很多前端開發(fā)對后端接口要求的傳參 一頭霧水乃秀,后端開發(fā)人員對HTTP一知半解,傳參接收不到圆兵,說不清楚跺讯,互相推脫,誰誰應該改傳參方式殉农。

HTTP協(xié)議中:Content-Type刀脏,估計是非常非常多的人弄不清楚。

本質上Content-Type 要么就是?text/html要么就是?json要么就是?表單超凳。

本質上 非常簡單愈污,但總是有人搞不清楚,總是在這個上面浪費時間轮傍。

JSON

當Content-Type?為?application/json?的時候暂雹,HTTP POST請求數(shù)據(jù)必須是JSON的。

任何框架都必須遵守這個協(xié)議创夜,如果不支持杭跪,則說明框架不完善,開發(fā)者可能知識比較片面。

例子:

HTTP POST

header:

Content-Type:"application/json"

body:

{

"key1": value1,

"key2": value2

}

其中整個JSON就是 參數(shù)本身涧尿,他沒有KEY系奉,沒有名稱。key1 现斋,key2嚴格說只是屬性喜最。

表單

當Content-Type?為?x-www-form-urlencoded?的時候,POST 的請求數(shù)據(jù)必須是表單的庄蹋。

甚至很多開發(fā)者印象中瞬内,參數(shù)就是個名字為key 值為value這種印象,這是非常膚淺的認識限书。

例子:

HTTP POST

header:

Content-Type:"x-www-form-urlencoded"

body:

key1=value1&key2=value2

何為表單參數(shù)虫蝶,就是以x-www-form-urlencoded為編碼的數(shù)據(jù)參數(shù),其中key1 和 key2就是參數(shù)倦西。整個內容就是為 以& 分隔的參數(shù)列表能真。

表單2

例子:這里用Chrome的F12中Network類似的表示HTTP POST請求

HTTP POST

header:

Content-Type:"x-www-form-urlencoded"

body:

key1=value1

key2={"key3":value3,"key4": value4}

那這個其實也是表單!H拍7垲怼!卤档!他的形式是表單里面嵌套了一個JSON字符串蝙泼,作為其中的一個參數(shù)

弄清楚這個了劝枣,其實根本不需要為了傳參而爭論半天汤踏。

什么情況應該用什么傳參?

如果參數(shù)比較單一舔腾,只做GET查詢的時候溪胶,建議直接GET。URL上面就是表單參數(shù)稳诚,和POST的表單一模一樣哗脖。

如果參數(shù)還是比較單一,但是參數(shù)值太多了采桃,很長很長的字符串懒熙,用POST是毋庸置疑的。

這個時候普办,POST?JSON和表單其實是一樣的工扎,都是在請求體里面

如果參數(shù)是結構化的衔蹲,用POST JSON肢娘,毋容置疑呈础。

如果參數(shù)是結構化的,還需要AUTH橱健,而钞;例如帶個TOKEN,那么:

使用上面的表單2拘荡,偽JSON表單臼节,這種情況的壞處就是JAVA后端的 Model解析比較別扭,不太好建模珊皿。

使用URL + 公共參數(shù)网缝、Token,其余參數(shù)放在Body蟋定,以POST JSON傳參粉臊,沒有壞處,好處就是后端做攔截器驶兜,或者Filter的時候比較統(tǒng)一明了扼仲,不需要在Model里面涉及 公共參數(shù)。唯一的壞處就是抄淑,前端同學可能懶得弄屠凶。

小程序前端 與后端配合開發(fā)的經(jīng)驗

前端封裝的框架,必須支持 公共參數(shù)追加到URL肆资,并且可以以JSON傳參乳规。

后端就可以依據(jù)以上的情況映九,靈活使用參數(shù)組織方式了,處理業(yè)務的代碼專心接受參數(shù)冤馏,

攔截器直接通過URL獲取公共參數(shù)和Token监署,來做一些版本控制颤专,身份認證等功能。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末钠乏,一起剝皮案震驚了整個濱河市栖秕,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌晓避,老刑警劉巖簇捍,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異俏拱,居然都是意外死亡暑塑,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進店門锅必,熙熙樓的掌柜王于貴愁眉苦臉地迎上來事格,“玉大人,你說我怎么就攤上這事【杂蓿” “怎么了远搪?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長逢捺。 經(jīng)常有香客問我谁鳍,道長,這世上最難降的妖魔是什么劫瞳? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任倘潜,我火速辦了婚禮,結果婚禮上柠新,老公的妹妹穿的比我還像新娘窍荧。我一直安慰自己,他們只是感情好恨憎,可當我...
    茶點故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布蕊退。 她就那樣靜靜地躺著,像睡著了一般憔恳。 火紅的嫁衣襯著肌膚如雪瓤荔。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天钥组,我揣著相機與錄音输硝,去河邊找鬼。 笑死程梦,一個胖子當著我的面吹牛点把,可吹牛的內容都是我干的。 我是一名探鬼主播屿附,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼郎逃,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了挺份?” 一聲冷哼從身側響起褒翰,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎匀泊,沒想到半個月后优训,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡各聘,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年揣非,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片伦吠。...
    茶點故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡妆兑,死狀恐怖魂拦,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情搁嗓,我是刑警寧澤芯勘,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站腺逛,受9級特大地震影響荷愕,放射性物質發(fā)生泄漏。R本人自食惡果不足惜棍矛,卻給世界環(huán)境...
    茶點故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一安疗、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧够委,春花似錦荐类、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至潘拨,卻和暖如春吊输,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背铁追。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工季蚂, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人琅束。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓扭屁,卻偏偏與公主長得像,于是被迫代替她去往敵國和親涩禀。 傳聞我的和親對象是個殘疾皇子疯搅,可洞房花燭夜當晚...
    茶點故事閱讀 45,037評論 2 355

推薦閱讀更多精彩內容