1. 程式人生 > >ajax 處理請求成功卻無法進入 success方法

ajax 處理請求成功卻無法進入 success方法

今天寫頁面的時候遇到一個奇怪的問題

前端這麼寫的:

$("#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" ,至此問題解決

參考: jQuery ajax - ajax() 方法,找到dataType段落