1. 程式人生 > 其它 >axios data與params 對比及@RequestBody和@RequestParam混合入參寫法

axios data與params 對比及@RequestBody和@RequestParam混合入參寫法

技術標籤:Vue

axios 配置官方文件

axios 中傳遞引數的方式有兩種屬性:dataparams

// 傳送 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所需引數。