轉載自:http://blog.csdn.net/javaee_sunny/article/details/52576710
1.報錯現象:
頁面報錯截圖:
後臺報錯截圖:
2.源代碼:
jsp代碼:
$.ajax({
type:"POST",
url:"${pageContext.request.contextPath }/empController/test",
contentType:"application/json;charset=utf-8", //發送信息至服務器時內容編碼類型。
data:{'ename':$('#ename').val()},
dataType:'json',
success:function(data){
alert("保存....");
},
error:function(data) {
alert("失敗...");
}
});
Controller代碼:
@ResponseBody
@RequestMapping("/test")
public Emp testjsp(@RequestBody Emp emp){
System.out.println(emp.getEname()+"***************");
return emp;
}
3.問題分析:
返回數據格式不規範.當dataType指定爲json後,1.4+以上的jquery版本對json格式要求更加嚴格.如果不是嚴格的json格式,就不能正常執行success回調函數.
JSON格式總結下,詳細的去json.org 查看。
1)鍵名稱:用雙引號 括起
2)字符串:用使用雙引號 括起
3)數字,布爾類型不需要 使用雙引號 括起
4.解決方案:
按照上方嚴格的json格式,將動態獲取的data參數修改爲如下格式,即可:
data:"{\"ename\":\""+$("#ename").val()+"\"}",
不是動態獲取數據時,格式如下:(注意比較區別)
data:'{"ename":"tom"}',