天天看点

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回调

继续阅读