SpringMVC+AJAX登入表單驗證問題
阿新 • • 發佈:2018-11-01
畢業設計,使用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,而你個狗東西卻給我個字串,老子不伺候了,自己玩去吧