Vue axios与spring boot(mvc)通信交互的两种方式
By:Roy.LiuLast updated:2020-09-30
在vue中与后台的ajax交互,常用的库就是axios, 但如果利用axios与后台spring mvc, 或者spring boot 配合的话,一般来说有两种搭配方式,如果搭配不正确的话,后台没有办法收到 axios传过来的值,两种方式如下:
axios 的 application/json 与后台 @RequestBody 配合. 举例入下:
axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8'
...
export function login(name, password){
let data = {"name":name,"password":password};
console.log(data);
return myrequest({
url:"/vuelogin",
method:"post",
data:data
})
}@CrossOrigin
@PostMapping("/vuelogin")
public AjaxResult vueLogin(@RequestBody User user) {
log.info("==>name:{}, password:{}", user.getName, user.getPassword);
return AjaxResult.success();
}2. axios 的 application/x-www-form-urlencoded 与后台普通的request param配合
这里我安装了qs库(在项目目录下运行: npm install qs --save)
axios.defaults.headers['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8'
...
import myrequest from '@/utils/request'
import qs from 'qs'
export function login(name, password){
let data = {"name":name,"password":password};
let postData = qs.stringify(data);
console.log(data);
return myrequest({
url:"/vuelogin",
method:"post",
data:postData
})
}@CrossOrigin
@PostMapping("/vuelogin")
public AjaxResult vueLogin(String name, String password) {
log.info("==>name:{}, password:{}", name, password);
return AjaxResult.success();
}这两种方式,那种方式适合自己,可以临时选择,看具体的项目需求。
From:一号门
Previous:VUE入门-父子组件之间的通信
Next:给博客添加一个摇头晃脑的萌妹子的JS代码

COMMENTS