通过控制台打印了code的值我发现并没有报错,而是code=0,所以我认为问题出在后端
methods:{
submitForm(){
let params = new URLSearchParams();
params.append("name",this.ruleForm.username);
params.append("password",this.ruleForm.password);
console.log(this.ruleForm.username);
console.log(this.ruleForm.password);
getLoginStatus(params)
.then((res) =>{
if(res.code == 1){
this.notify("登录成功","success");
}else{
console.log(res.code);
this.notify("登录失败","error");
}
});
}
}
}
到后端后我第一时间查看了dao和controller层的内容,却没有看出什么差错
Controller
public class AdminController {
@Autowired
private AdminService adminService;
@RequestMapping(value = "/admin/login/status",method = RequestMethod.POST)
public Object loginStatus(HttpServletRequest request, HttpSession session){
JSONObject jsonObject=new JSONObject();
String name=request.getParameter("name");
String password=request.getParameter("password");
boolean flag=adminService.verifyPassword(name,password);
if(flag){
jsonObject.put(Consts.CODE,1);
jsonObject.put(Consts.MSG,"登录成功");
session.setAttribute(Consts.NAME,name);
return jsonObject;
}
jsonObject.put(Consts.CODE,0);
jsonObject.put(Consts.MSG,"用户名或密码错误");
return jsonObject;
}
}
Dao
public interface AdminMapper {
/*
*检验密码是否正确
*/
public int verifyPassword(String username,String password);
}
没看出哪错了我又去检查adminmapper.xml的mybatis语句有没有写错,然后看了数据库的数据发现我调用的数据没有写错
<mapper namespace="com.lx.music.dao.AdminMapper">
<resultMap id="BaseResultMap" type="com.lx.music.domain.Admin">
<id column="id" jdbcType="INTEGER" property="id"/>
<result column="name" jdbcType="VARCHAR" property="name"/>
<result column="password" jdbcType="VARCHAR" property="password"/>
</resultMap>
<select id="verifyPassword" resultType="java.lang.Integer">
select count(*) from admin where name=#{username} and password=#{password}
</select>
</mapper>
这个问题已经困扰了我两天,希望有人能给我解决