ajax验证总是会经过error,后台也不报错

xiuluo_zzz 2017-06-07 11:56:03
验证的时候输入错误的账号密码显示正常,但是输入正确的账号密码也会先经过error然后再跳转到正确的页面

...全文
1298 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
猎八哥 2018-11-06
  • 打赏
  • 举报
回复
在前端 把 async: false, 这个加上 试下,应该就可以了
zhujinbing 2017-07-21
  • 打赏
  • 举报
回复
这data怎么来的,不应该是function(data)
loong0306 2017-07-20
  • 打赏
  • 举报
回复
success: function(data)
试试
z896709283 2017-07-20
  • 打赏
  • 举报
回复
1.你success回调方法里面没有参数,也就是返回值你接收不到。 2.哪怕你能接收到返回值,你接受的数据类型是string,不是json,那你怎么能用data.XXX,字符串能取属性值吗
JieRiTian 2017-07-19
  • 打赏
  • 举报
回复
这是我写过的一个登录,你可以看一下 部分servlet:

UserService service = new UserService();
        JsonObject object = new JsonObject();
        if (name != null && password != null){
            boolean flag = service.login(name,password);
            if (flag){
                session.setAttribute("user",name);
                //使用json发送数据,status中1代表成功,0代表失败
                object.addProperty("status",1);
                object.addProperty("message","登录成功");
                object.addProperty("address",request.getContextPath()+ "/index.jsp");
                out.write(object.toString());
            }else{
                object.addProperty("status",0);
                object.addProperty("message","用户名或者密码错误");
                out.write(object.toString());
            }
        }
ajax部分:

$.ajax({
            type: "POST",
            url: "login",
            dataType: "json",
            data: {name: $("#username").val(), password: $("#password").val()},
            success: function (data) {
                if (data.status == 1) {
                    $(location).attr("href", data.address);
                } else if (data.status == 0) {
                    $("#message").show().html(data.message);
                }
            }
        });
PYJJ 2017-07-19
  • 打赏
  • 举报
回复
答案在三楼,
哈哈哈· 2017-07-03
  • 打赏
  • 举报
回复
1、$.ajax({ dataType:"json" }) 2、后台使用@ResponseBody 注解,你可以返回一个Map或者json形式都可以,这里以Map 为例。 Map<String,String> map = new HashMap<>(); if(登录成功){ map.put("login","success"); }else{ map.put("login","failed"); } return map; 3、前台 $.ajax({ xxxx.... if(data.login == "success"){ window.location.href = "你成功url" }else if(data.login=="failed"){ window.location.href = "你失败url" } });
  • 打赏
  • 举报
回复
你都用AJAX了,JAVA代码还跳转什么页面啊|?跳转页面放到AJAX回调方法里。 JAVA 代码返回成String,"登录成功" 或者“登录失败”。 ajax里success: function 里都没拿data接返回数据。你data.success有什么用。
河岸飞流 2017-06-23
  • 打赏
  • 举报
回复
看你返回值类型了,ajax配的是text,如果你返回的是其他就会报错
gouyeye 2017-06-22
  • 打赏
  • 举报
回复
你的success: function(){ } 没有返回值
Huangmartin 2017-06-22
  • 打赏
  • 举报
回复
还有你的DATA是个对象来的或者任何OBJECT,data.SUCCESS是什么啊
Huangmartin 2017-06-22
  • 打赏
  • 举报
回复
SUCEESS里面连DATA都没有我醉了
那年花 2017-06-22
  • 打赏
  • 举报
回复
success: function(data){
                         debugger;
                      }
如上图 在success方法里面加入一个debugger,然后在浏览器按F12 运行起来 如果没有debug 说明没有进入success方法 进入了error方法 如果有debug 那么就进入了success 这个时候你看你的代码是怎么走找出错误
zxing258974 2017-06-10
  • 打赏
  • 举报
回复
你ajax后台返回的数据呢?都没有看到你return什么东西
程序猿老曾 2017-06-10
  • 打赏
  • 举报
回复
会不会是执行了data.success啊??你的data.success的代码块可是跟error一样的啊~~~~
  • 打赏
  • 举报
回复
ajax实现的就是不通过跳转页面得到服务器端的数据,你这java代码最后的跳转页面是多余的。参照上面回复的修改下
xiuluo_zzz 2017-06-08
  • 打赏
  • 举报
回复
按照五楼的方法试了。还是老样子
qq_35671060 2017-06-08
  • 打赏
  • 举报
回复
用浏览器的调试模式看,你这个ajax请求返回的状态码是多少。非 200响应都走的err
北飞的企鹅 2017-06-08
  • 打赏
  • 举报
回复
你设置返回值类型是text,但是你后台好像没设置返回值
爱睡觉的阿狸 2017-06-08
  • 打赏
  • 举报
回复
浏览器,按F12,点击Console,看看有什么错误
加载更多回复(7)

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧