在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)
}
运行后,后台可以正常获取到参数值了。