axios传递数据到java_springmvc获取axios数据为null情况

场景:前端用了vue没有用ajax与后台通信,用了axios,但是在代码运行过程中发现axios传递到后台的值接受到数据为null。

问题原因:此处的问题在与axios返回给后台的数据为json类型的,后台接收和返回也应该是json类型的才行。

解决方式:这里用的是@ResquestBody和@ReponseBody这两个注解来解决的。如下图代码使用@RequestBody Map map去获取前台传递过来的数据,然后返回给前端的数据也必须为json格式,这时候需要在方法上方加一个@ReponseBody注解。或者在类的上用@RestController代替@Controller注解也有相同的效果。

public String toMainPage(@RequestBody Map map, HttpServletRequest request) throws Exception {

String username = (String) map.get("username");

String password = (String) map.get("password");

String flag = (String) map.get("flag");

ModelAndView mv = new ModelAndView();

HttpSession session = request.getSession();

String getPassword = null;

if("0".equals(flag)){//登录用户为管理员的情况

getPassword = this.userSystemService.getSSystemByUsername(username,password);

}else{//普通用户登录

getPassword = this.userSystemService.getUserByUsername(username,password);

}

if(!"".equals(getPassword) && getPassword != null){//用户名密码都正确的情况下将用户的数据放入session

session.setAttribute("loginName",username);//登录用户名

session.setAttribute("flag",flag);//登录角色类型

}

return getPassword;

}

axios方法讲解:由于也是第一次使用axios像后台传递数据,这里只写出个人的使用感悟,如果有不对的地方希望指正。axios和ajax的使用很相似,下面的例子是一个post请求,而then就相当于ajax中的success,catch则相当于error。post里面的“/judgeUser”为请求地址,后面的为需要传递给后台的数据。

axios引入说明,axios引入有两种方法。一种是:如果项目中使用了node的话通过node的方式引入,这边本项目没有使用node,在这里不对这种方式做讲解。本项目通过第二种方式:以js文件的形式引入的。

或者也可以登如上面的地址将内容复制下来然后放在axios.min.js文件来引入

axios.post('/judgeUser', {

username : username,

password : password,

flag : flag,

})

.then(function (res) {

if(res.data == "1") {

if(flag == "0") {//管理员登录

location.href = "/toMain";

}else {//普通人员登录

location.href = "/toMain";

}

}else {

alert("用户名或者密码不正确");

}

})

.catch(function (err) {

alert("验证失败,用户名或者密码不正确");

});

转载至链接:https://my.oschina.net/zicheng/blog/1831949

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值