在Vue框架中,使用axios提交數據
問題
前端js代碼如下:
import Vue from 'vue'
import axios from 'axios';
export const getAddUser = params=>{
return axios.get('user/addSave',{params:params});
}
後臺java代碼如下:
@RequestMapping(value = "/addSave", method = RequestMethod.POST)
@ResponseBody
public ResultMsg addSave(HttpServletResponse response, @RequestParam HashMap<String, String> map) {
String estr = "添加賬號信息(addSave)===:";
try {
logger.debug("map:" + map.toString());
} catch (Exception e) {
logger.error(estr + e.toString());
return null;
}
}
運行後,控制檯輸出map:{},無法獲取到參數數據。
解決方案
引用qs.js,將參數重新封裝格式化後再傳入。
修改後的代碼如下
import Vue from 'vue'
import axios from 'axios';
var qs = require('qs');
export const getAddUser = params=>{
let pm=qs.stringify(params);//使用qs格式化
return axios.post(`user/addSave`,pm)
}
運行後,後臺可以正常獲取到參數值了。