HTTP請求中Get、Post與後臺引數接收的分析
HTTP請求中Get、Post與後臺引數接收的分析
前言:在http請求時經常碰到這兩種方式,經常後臺接收不到引數,所以總結一下,不同的請求方式的用處以及在後臺如何接收。
參考:
https://www.bbsmax.com/A/amd0E1mDzg/
https://blog.csdn.net/xybelieve1990/article/details/81111786
https://www.cnblogs.com/btgyoyo/p/6141480.html
https://blog.csdn.net/u013827143/article/details/86222486
一、Get請求
get請求比較簡單,只是在請求連結後面加上引數。後臺接收引數時直接把對應的引數寫在函式的方法中即可。
如請求為:
http://xxxx/exportPeople/peoplePackage/like?queryParameter=123
在谷歌的開發者工具中會顯示為:
二、Post請求
2.1 application/x-www-form-urlencoded
前端傳的content-type
為application/x-www-form-urlencoded
,這也是預設的請求方式
這樣,引數在請求體以標準的Form Data的形式提交,以&
符號拼接,引數格式為key=value&key=value&key=value...
可以看到請求體為 引數名=
引數值&
的形式組合起來的,和get差不多,只不過一個是在request請求體中,一個是在請求的url中。
在谷歌瀏覽器的開發者工具裡,會顯示為
如果有陣列則是:
2.2 multipart/form-data
前端傳的content-type
為application/x-www-form-urlencoded
,一般要傳檔案時會選擇這個,它會將表單的資料處理為一條訊息,以標籤為單元,用分隔符分開。既可以上傳鍵值對,也可以上傳檔案。當上傳的欄位是檔案時,會有Content-Type
來說明檔案型別;content-disposition
,用來說明欄位的一些資訊;
由於有boundary
隔離,所以multipart/form-data
既可以上傳檔案,也可以上傳鍵值對,它採用了鍵值對的方式,所以可以上傳多個檔案。
http工具上傳:
js,ajax上傳:
var formData = new FormData();
formData.append('file', img.files[0]); //新增圖片資訊的引數
formData.append('typeCode',typeResCode);//新增其它引數
$.ajax({
url: rep_service_api.resThumbnailUpdate,
headers : {
'Access-Control-Allow-Origin' : '*',
'Return-Data-Type':'json'
},
type: 'POST',
cache: false, //上傳檔案不需要快取
data: formData,
processData: false, // 告訴jQuery不要去處理髮送的資料
contentType: false, // 告訴jQuery不要去設定Content-Type請求頭
success: function (data) {
console.log("執行成功函式")
},
error: function (data) {
}
})
在谷歌瀏覽器的開發者工具裡,會顯示為:
view source:
2.3application/json
前端傳的content-type
為application/json
,主要是用來傳json資料
谷歌瀏覽器中顯示:
view source:
原文: https://blog.csdn.net/q610376681/article/details/103869989/