springMVC中使用 RequestBody POST请求 415 (Unsupported Media Type)
SpringMVC 请求 type post Media unsupported RequestBody 使用
2023-09-11 14:17:19 时间
前端代码:
<html> <head> <base href="<%=basePath %>"/> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>Insert title here</title> </head> <body> <form method="post" action="<%=basePath%>user/login2"> <label for="name">用户名</label> <input id="name" type="text" name="username"> <br> <label for="pass">密码</label> <input id="pass" type="text" name="password"> <button type="submit">提交</button> </form> </body> </html>
后端代码:
@PostMapping("/login2") public String loginLogic2(@RequestBody User user) { Subject subject = SecurityUtils.getSubject(); // UsernamePasswordToken token = new UsernamePasswordToken(user.getUsername(), user.getPassword()); // 登录失败会抛出异常,则交由异常解析器处理 //subject.login(token); System.out.println(user); return "main"; }
分析:
出现问题的元婴是 @RequestBody 允许json的请求通过 而前端默认的请求类型为
application/x-www-form-urlencoded ,所以出现媒体类型不一致,
解决方案:
1: @RequestBody(required=false)
2: 去掉1中注解 由MVC自动进行装配,可以不是json数据
后述: 实际上在全部ajax应用的时候允许使用@RequestBody,但是传统问题上可以设置其不是必须的参数.
相关文章
- SpringMVC 接受请求参数、作用域传值
- SpringMVC 请求全过程漫谈
- JavaWeb_(SpringMVC框架)SpringMVC&Spring&MyBatis整合
- springmvc入门程序
- SpringMVC处理静态文件源码分析
- springMVC中HTTP PUT请求该如何传输请求参数呢?
- SpringMvc hibernate validator
- SpringMVC文件上传
- springmvc跨域+token验证
- 【SpringMVC笔记02】SpringMVC接收请求参数的几种方式
- Java学习路线-65:整合 SSM-Spring+SpringMVC+MyBatis
- Java学习路线-64:SpringMVC
- springmvc 之 Controller
- springmvc 之 helloworld
- SpringMVC入门第三部分
- [springMVC学习]4、获取请求信息,使用servlet API
- [springMVC学习]2、@RequestMapping请求映射
- SpringMVC请求参数乱码问题