SpringMVC+AJAX登录表单验证问题

毕业设计,使用springMVC+AJAX(jquery)实现登录表单验证问题,将遇到的问题记录下来

1 controller层可以接收到前台请求参数,但是success和error都不执行

无图言叼

这是js

<script type="text/javascript">
		$(document).ready(function(){
			$("#su").click(function(){
				$.ajax({
					type:"POST",
					url:"<%=basePath%>manager/host.action",
					data :{
						manUsername : $("#manUser").val(),
						manPassword : $("#manPass").val(),
					},
					async:true,
					dataType:"json",
					success : function(param){	
						alert("登陆成功");
					},
					error : function(){
					   alert("登录失败");
					}
				});
			});
		});
	</script> 

这是jsp表单

<form role="form" method="post" id="login">
						<div class="form-group">
							<label for="manUsername">用户名:</label>
							<input id="manUser" class="form-control" type="text" name="" />
						</div>
						<div class="form-group">
							<label for="manPassword">密码</label>
							<input id="manPass" class="form-control" type="password" name="" />
						</div>
						<input id="su" class="btn btn-success" type="submit" value="登录" />
						<input class="btn btn-success" type="reset" value="取消" />
					</form>

别问我发生了啥,后台controller层可以打印出来用户名,但是success和error都不执行


想想也是好气啊,连百度带问同学,终于发现了一个让自己膀胱爆炸的错误。。对!就是data里面多了一个逗号


好气哦


2  点击登录按钮之后呢,页面自动刷新,最直观的显示就是警告框一闪而过。。。。

这个问题还好点,百度了一下,发现form表单就是自动刷新的,如果想阻止他自动刷新的话,就得将form换成div,或者将submit换成button.我采用的是后者,问题解决,但是回车键就不能用了,只能手动点击登录,难道要再绑定一个回车事件?回来试验一下

3 登录后,ajax不执行success,而是执行error

这个问题也挺坑,但是百度是强大的,亲爱的度度告诉我,是我的后台返回值有问题,好,那老子给你看看我的后台controller

	@RequestMapping(value = "host.action")
	public @ResponseBody 
	       String managerWantToLogin(Manager man,Model model) {
		System.out.println(man.getManUsername());
		if(managerService.checkLogin(man)) {
			List<Dishes> list = dishesService.findDishesListByType(null);
			List<DishesType> didhesTypeList = dishesTypeService.findDidhesTypeList();
			List<Orders> orderList = ordersService.getOrderList(null);
			model.addAttribute("orderList", orderList);
			model.addAttribute("dishesTypeVoList", didhesTypeList);
			model.addAttribute("dishesVoList", list);
			return "YES";
		}else {
			return "NO";
		}
			
	}

妈的,怕不怕,我加上注解了

结果,度度一声冷笑

“你返回的是个字符串,那你告诉我,你的dataType还有何用,不报错更待何时”

可乐,卒。





总结  1 一定要细心,想什么中英文引号,逗号之类的一定不要忘了

        2 form配合submit会自动刷新,将submit改成button就好了(但是回车键就不能登录了,可能需要重新绑定事件)

3 如果后台返回的是个简单的字符串,而不是一个对象,那么dataType:json就不要加了,他会认为你这个家伙不厚道,说好的返回json,而你个狗东西却给我个字符串,老子不伺候了,自己玩去吧


苟利编程生死以,岂因BUG趋避之



猜你喜欢

转载自blog.csdn.net/an20150509/article/details/80117542