HTTP請求中的Form Data與Request Payload的區別

HTTP請求中的Form Data與Request Payload的區別

前端開發中常常會用到AJAX發送異步請求,對於POST類型的請求會附帶請求數據。而經常使用的兩種傳參方式爲:Form Data 和 Request Payload。前端

121212

334343

GET請求

使用get請求時,參數會以key=value的形式拼接在請求的url後面。例如:git

 

可是受限於請求URL的長度限制,通常參數較少時會使用get請求。github

POST請求

當參數數量較多,且對數據有必定安全性要求時,會考慮用post請求傳遞參數數據。POST請求的參數數據是在請求體中。json

方式一: Form Data形式

當POST請求的請求頭裏設置Content-Type: application/x-www-form-urlencoded(默認), 參數在請求體以標準的Form Data的形式提交,以&符號拼接,參數格式爲key=value&key=value&key=value...後端

3333

121212

前端代碼設置:安全

 

在servlet中,後端能夠經過request.getParameter(name)的形式來獲取表單參數。app

方式二:Request Payload形式

若是使用AJAX原生POST請求,請求頭裏設置Content-Type:application/json,請求的參數會顯示在Request Payload中,參數格式爲JSON格式:{"key":"value","key":"value"...},這種方式可讀性會更好。異步

444

334343

後端能夠使用getRequestPayload方法來獲取。post

Form Data 和 Request Payload 區別

  1. 若是請求頭裏設置Content-Type: application/x-www-form-urlencoded,那麼這個請求被認爲是表單請求,參數出如今Form Data裏,格式爲key=value&key=value&key=value...url

  2. 原生的AJAX請求頭裏設置Content-Type:application/json,或者使用默認的請求頭Content-Type:text/plain;參數會顯示在Request payload塊裏提交。

轉自:https://github.com/kaola-fed/blog/issues/105

相關文章
相關標籤/搜索