springmvc+ajax 回调函数需要浏览器一步步调试才能执行,很奇怪,困扰了好两天了

weixin_37260217 2017-07-25 01:41:14
前端页面登陆函数
function login(){
var userId = document.getElementById("UserName").value;
var password = document.getElementById("PassWord").value;

if(userId == null || userId == ""){
alert("用户名不可为空!");
return;
}
if(password == null || password == ""){
alert("密码不可为空!");
return;
}
var strUrl = "dologin.action";
var params={"UserName":userId,"PassWord":password};
debugger;
$.ajax({
type : 'post',
url : strUrl,
data : {
UserName : userId,
PassWord:password
},
dataType: "json",
async : true,
success : function(data) {
debugger;
if(data.ReturnCode=="0"){
window.location.href="goToHome.action";
}
else{
alert("登录失败,用户名或者密码错误!");
}
}
});
}


后台:
@RequestMapping(value="/dologin")
@ResponseBody
public String dologin(HttpServletResponse response){
String username = request.getParameter(ITag.UserName);
String password = request.getParameter(ITag.PassWord);
Map<String,String> map = new HashMap<String, String>();
User u =new User();
u.setUserName(username);
u.setUserPassword(password);
u = this.userService.login(u);
if(u!=null){
request.getSession().setAttribute("user", u);
map.put(ITag.ReturnCode, "0");
}else{
// request.setAttribute(ITag.ErrorMessage, "您输入的用户名或密码不正确!");
map.put(ITag.ReturnCode, "-1");
map.put(ITag.ErrorMessage, "您输入的用户名或密码不正确!");
}
String jsonResponse = JSON.toJSONString(map);
System.out.println(username+":"+password);
System.out.println(jsonResponse);
return jsonResponse;
}

第一种情况 到达第一个debugger之后直接 f8 跳过后面断点


后台打印:
123:123
{"ReturnCode":"-1","ErrorMessage":"您输入的用户名或密码不正确!"}

完了之后前台就没有进入回调函数执行alert

第二中情况,前台一步步调试就可以执行alert


后台打印:
123:123
{"ReturnCode":"-1","ErrorMessage":"您输入的用户名或密码不正确!"}


两次输入的是一样的,肯定确保登陆账号和密码是不正确的,为什么需要一步一步调试才能执行回调函数啊,哪位大神给解答一下,谢谢啊,困扰两天了,这是为什么?分不多啊只能给10分了

...全文
326 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_37260217 2017-08-16
  • 打赏
  • 举报
回复
谢谢,问题已经解决了,后面忙忘了结贴,就是4楼说的那个问题,我把button放到form里面了,所以导致表单也提交了一次,向后台请求了两次才会出现上面的情况,唉,还是怪自己技术不给力啊,把button标签里面设置type=‘button’就好了
  • 打赏
  • 举报
回复
你后台返回的是string,前面js的ajax直接按照json对象来调用肯定不行啊
Go 旅城通票 2017-07-26
  • 打赏
  • 举报
回复
怎么触发login的?是不是放在表单的提交按钮导致表单提交了?
  • 打赏
  • 举报
回复
1..建议先用debug调试一下看根据用户名和密码查询到的用户信息是否为空。
2..接收前台传递参数对象不要和根据账号密码查询到的用户对象使用同一个。
3.一般ajax传参数async 使用false;如果不能进success函数,建议把error函数加上,看看具体是什么原因。
weixin_37260217 2017-07-25
  • 打赏
  • 举报
回复
求大神回复啊,给解答一下啊
weixin_37260217 2017-07-25
  • 打赏
  • 举报
回复
在线等啊,急急急 啊,有人吗

52,797

社区成员

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

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