天天看點

ajax不執行success回調而是執行error回調

1.源代碼:

前端js代碼:

$.ajax({ 
              type:"POST", 
              url:"${pageContext.request.contextPath }/empController/test", 
              contentType:"application/json;charset=utf-8",  //發送資訊至伺服器時内容編碼類型。             

              data:'{"ename":"tom"}',
              dataType:'json',  
              success:function(data){ 
                        alert("儲存....");
                      },
              error:function(data) { 
                        alert("失敗...");
                    } 
          }); 
           

後端傳回資料的樣式:

return "{success:true}";
           

2.原因分析:

傳回資料格式不規範.當dataType指定為json後,1.4+以上的jquery版本對json格式要求更加嚴格.如果不是嚴格的json格式,就不能正常執行success回調函數.

JSON格式總結下,詳細的去json.org 檢視。   

1)鍵名稱:用雙引号 括起   

2)字元串:用使用雙引号 括起

3)數字,布爾類型不需要 使用雙引号 括起

3.解決方案:

return "{'success':true}";
           

4.參考文章:

[1] ajax不執行success回調而是執行了error回調

繼續閱讀