技术解析
我使用 m1 Macbook 想做个 demo 玩玩,但是请求后端就开始报错了,请大佬帮忙看看。 使用 Springboot 2.2.6.RELEASE+thymeleaf+mybatis-plus+mysql
前端 js:
function login() {
$("#loginForm").validate({
submitHandler: function (form) {
doLogin();
}
});
}
function doLogin() {
g_showLoading();//显示 loading 动画
var mobile = $("#mobile").val();
var inputPassword = $("#password").val();
alert("mobile:" + mobile + ",password:" + inputPassword);
var salt = g_password_salt;
var str = "" + salt.charAt(0) + salt.charAt(2) + inputPassword + salt.charAt(5) + salt.charAt(4);
var password = md5(str);//md5 加密
console.log(password);//这里打印不出密码
var data = {}
data.mobile = mobile;
data.password = password;
$.ajax({
url: '/login/doLogin',
type: 'POST',
dataType: "json",
cache: false,
//async: true,
data: JSON.parse(data),
success: function (data) {
layer.closeAll();
if (data.code === 200) {
layer.msg("登录成功");
} else {
layer.msg(data.message);
}
//return false;
},
error: function () {
layer.closeAll();
}
});
}
controller:
@Controller
@RequestMapping(value = "/login" , method = {RequestMethod.GET,RequestMethod.POST})
@Slf4j
public class LoginController {
@RequestMapping(value = "/toLogin", method = RequestMethod.GET)
public String toLogin() {
return "login";
}
@RequestMapping(value = "/doLogin", method = RequestMethod.POST)
//@PostM抗投诉服务器apping("/doLogin")
@ResponseBody
public RespBean doLogin(@RequestBody LoginVo loginVo) {
log.info("{}", loginVo.toString());
System.out.println(loginVo.toString());
return null;
}
}
在浏览器输入 http://localhost:8080/login/toLogin 可以访问到页面,然后点击登录调用 doLogin()方法,前后后端没有报错,但是后端的打印也不会打印到控制台;但是去掉 @RequestMapping(value = "/login" , method = {RequestMethod.GET,RequestMethod.POST})类上面这个 method 的话会报 405 post not support 。 并且使用 postman 调用接口都会报 404,排查了好久都没有解决。