前台请求
$.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);
);
}
后台返回 json 数据时有没有返回响应头 content-type: application/json; charset=utf-8
有
@TuiTuiTui: 你在 success 的回调函数中也是 alert(data) ,与 error 回调函数一样,这样看不出是否成功,建议 alert(data.result.msg)
@dudu: alert(data.result.msg)不弹窗,得不到值
@TuiTuiTui: 浏览器控制台有报错吗?
@dudu: 好像有
@TuiTuiTui: 试试 alert(JSON.stringify(data))
@dudu: 获取到了
@dudu: 大哥,这个是什么方法啊?怎么跟别的不一样?这种情况是怎么回事啊,不懂,请教一下
@TuiTuiTui: JSON.stringify 是将返回的数据序列化为 json 字符串
@TuiTuiTui: 从输出看,服务端的 json 序列化有问题
@dudu: 感觉有点麻烦,简单直接一点的要怎么写
那我要获取具体的一个数据怎么写
@dudu: 后台json序列化?怎么改
@TuiTuiTui: 建议你自己多试试,我对 java 不熟悉
@dudu: 嗯好的,谢谢哈,我再试试