axios data與params 對比及@RequestBody和@RequestParam混合入參寫法
阿新 • • 發佈:2021-02-08
技術標籤:Vue
axios 中傳遞引數的方式有兩種屬性:data
,params
// 傳送 POST 請求
axios({
method: 'post',
url: '/user/12345',
data: {
firstName: 'Fred',
lastName: 'Flintstone'
},
params: {
ID: 12345
},
});
//
params
是即將與請求一起傳送的 URL 引數
// 必須是一個無格式物件(plain object)或 URLSearchParams 物件
params: {ID: 12345
},
//
data
是作為請求主體被髮送的資料
// 只適用於這些請求方法 ‘PUT’, ‘POST’, 和 ‘PATCH’
// 在沒有設定transformRequest
時,必須是以下型別之一:
// - string, plain object, ArrayBuffer, ArrayBufferView, URLSearchParams
// - 瀏覽器專屬:FormData, File, Blob
// - Node 專屬: Stream
data: {
firstName: ‘Fred’
},
params
對應的java中接收引數型別@RequestParam
同時,對應的chrome的Query String Parameters
data
對應的java中接收引數型別@RequestBody
同時,對應的chrome的Request Payload
:
在後端一個請求,接收引數是既有@RequestBody,又有@RequestParam時,前端處理方法:
axios.request({
url: '/login/abc?userName=' + userName,
data: {
id: 1
},
method: 'post'
})
userName
後拼的url是@RequestParam所需引數;
data
中的值是@RequestBody所需引數。