ajax 處理請求成功卻無法進入 success方法
阿新 • • 發佈:2018-12-11
今天寫頁面的時候遇到一個奇怪的問題
前端這麼寫的:
$("#submitMsg").click( function () { console.log("進入事件"); $.ajax({ type:'post', data:$("#form-msg").serialize(), url:"/jacktu/main/send_msg.do", dataType:"json", success:function(data){ if(data=="successful"){ $("#aeraMsg").val("").focus(); alert("提交成功!"); }else{ alert("提交失敗!"); } },error:function(){ alert("錯誤!"); } }) } );
後端處理:
@RequestMapping(value="/send_msg",method=RequestMethod.POST) @ResponseBody public String get_msg(HttpServletResponse response,HttpServletRequest request) { String leave_msg = request.getParameter("leave_msg"); String user_name = request.getParameter("user_name"); mainservice.saveMsg(user_name,leave_msg); return "successful"; }
每次提交,後臺處理請求都成功走到了 successful 這一行
但是,前端接收資料後 卻一直走到 error 的 function
研究了一會後才發現,自從 jquery 1.4以後 對於 json 資料格式更加嚴謹
我前端指定 dataType:"json" 但是 後端 只返回一個 String ,顯然不符合要求
所以我把前端的 dataType:"json" 改為: dataType:"text" ,至此問題解決