以下面的這段Spring java程式碼為例,介面使用POST協議,需要接受的參數分別是tsCode、indexCols、table。針對這個Spring的HTTP接口,axios該如何傳參?有幾種方法?我們來一一介紹。
@PostMapping("/line") public List<? extends BaseEntity> commonEChart(@RequestParam String tsCode, @RequestParam String indexCols, @RequestParam String table){
使用axios實例的params進行傳參,就會將params參數格式化為x-www-form-urlencoded的格式,與後端參數一一對應即可傳參成功。這也是我推薦給大家的傳參方法!
return request({ url: '/chart/line', method: 'post', params: { //注意这里的key是params tsCode, indexCols, table } })
也可以使用js的FormData物件進行參數格式化,同樣可以在Spring後端正確的使用@RequestParam
註解進行參數接收。
let params = new FormData(); params.append('tsCode', tsCode); params.append('indexCols', indexCols); params.append('table', table); return request({ url: '/chart/line', method: 'post', data: params //注意这里的key是data })
也可以使用qs.stringfy
進行參數格式化,同樣可以在Spring後端正確的使用@ RequestParam
註解進行參數接收。
import qs from "qs"; return request({ url: '/chart/line', method: 'post', data: qs.stringify({ //注意这里的key是data tsCode, indexCols, table }) })
要注意的是使用這種方法,需要手動設定header(Content-Type)
const service = axios.create({ headers: { "Content-Type": "application/x-www-form-urlencoded" } });
java程式碼部分如下所示,DemoModel類別是一個實體類,包含名稱tsCode,indexCols,table三個字串成員變數。接收到的JSON格式參數會自動為demo物件的成員變數賦值。
@PostMapping("/line") public List<? extends BaseEntity> commonEChart(@RequestBody DemoModel demo){
@RequestBody
註解,預設接收JSON類型格式的資料。在axios中預設data傳參就會預設使用JSON資料格式,所以不用額外的特殊處理。
return request({ url: '/chart/line', method: 'post', data: { //注意这里的key是data tsCode, indexCols, table } })
以上是Java axios與spring前後端分離傳參規範是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!