1. 程式人生 > 其它 >Axios請求傳遞陣列的問題

Axios請求傳遞陣列的問題

Vue 開發前端,向後臺 springboot 傳遞陣列,springboot 接收陣列方式無法使用

– @RequestParam(“ids[]”) String [] ids –

然後丟擲以下異常,經過多輪驗證發現@RequestParam(“ids[]”) 失效,無法使用

Resolved [org.springframework.web.bind.MissingServletRequestParameterException] Required String[] parameter ‘ids[]’ is not present]

解決方案

  • 後端使用 @RequestParam(value=“ids[]” String [] ids)

    qs.stringify({ids: [1, 2, 3]}, { indices: false })
    //形式: ids=1&ids=2&id=3
    qs.stringify({ids: [1, 2, 3]}, {arrayFormat: ‘indices‘})
    //形式: ids[0]=1&aids1]=2&ids[2]=3
    qs.stringify({ids: [1, 2, 3]}, {arrayFormat: ‘brackets‘})
    //形式:ids[]=1&ids[]=2&ids[]=3
    qs.stringify({ids: [1, 2, 3]}, {arrayFormat: ‘repeat‘})
    //形式: ids=1&ids=2&id=3
    
  • 後端不使用 @RequestParam(value=“ids[]” String [] ids)

    1. 後端方法接收去除@RequestParam ,然後使用陣列接收 例如:String[] ids

    2. 前端傳遞陣列 axios 需要使用 URLSearchParams 包裹陣列

    3. 請求頭中引數傳遞顯示為如圖所示:無論是 axios 還是 ajax 只要請求頭傳遞格式是這樣的,後端用 String[] ids 接收就行了