前台请求
$.ajax({
//提交类型
type:"post",
//提交url
url:"/SSM1/tologin",
//提交的数据
data:{uid:$("#name").val(),upwd:$("#pwd").val()},
//返回数据格式
datatype:"json",
//成功返回调用的函数
success:function(data){
alert(data);
},
//调用出错执行的函数
error:function(data){
alert(data);
}
});
后台代码
@ResponseBody
@RequestMapping(value="/tologin",method= RequestMethod.POST)
public void tologin(@RequestParam("uid") String uid,@RequestParam("upwd")String upwd
,HttpServletResponse response) throws IOException{
// 解决后台返回数据给前台出现的乱码问题
//response.setContentType("text/javascript;charset=utf-8");
response.setContentType("application/json;charset=utf-8");
response.setCharacterEncoding("UTF-8");
//信息处理类
Result result = new Result();
//根据id查询是否存在该用户
TbUser user=userservice.findById(uid);
//如果存在判断密码
if(user!=null) {
String pwd=user.getUpwd();
if(pwd.equals(upwd)) {
result.setMsg("账号密码正确");
result.setCode(1);//1正确
result.setSuccess(true);//true成功正确
}else {
result.setMsg("密码错误");
result.setCode(-2);//-2密码错误
result.setSuccess(false);
}
}else {
result.setMsg("账号不存在");
result.setCode(-1);//-1失败
result.setSuccess(false);
}
JSONObject jsonObject=new JSONObject();
jsonObject.put("result", result);
response.getWriter().print(jsonObject);
);
}
没有问题啊,你的响应内容正常到了
result.setCode(1);//1正确
result.setSuccess(true);//true成功正确
这里的啊,为什么说没有取到呢?
直接这样alert(result.xxx)试下看看
data.result.xxx在ajax中这样获取不了吗?
你的ajax流程是进入error里面了嘛,你的两个alert别写一样,看看是不是进去了,然后查原因
你这个'data'是个后台查询结果的集合吧,直接在页面上显示就是你截图那样,试着用里面具体的对面,像‘data.student’这样,在弹窗直接输出里面的查询项目
在你代码里我从头到尾都没看到你往result对象里面setdata值,前台又怎么会有呢,所以为data为空才是正确的,你都没设值,不为空才是有问题