$.ajax返回不执行success的原因

$.ajax({ 
.. 
dataType:'json', 
... 
success:function(jsonData){ 
//不执行success 
}, 
error:function(error){ 
//总是执行这个error 
} 
});

原来是jquery1.4版本以后对json格式要求非常严格了,要满足json.org网站定义的格式才能执行success回调,否则都会出错,无法解析返回的json数据。说的是1.4+以上的,那为什么下载的1.3.2指定dataType为json时也不能执行success回调呢?

  怪不得不执行,原来我返回的是{success:true,id:1} 这种不规则的字符串,不是严格的json格式,改成{"success":true,"id":"1"} 就可以正常执行success回调了。
  
  JSON格式总结下,详细的去json.org 查看。
  1)键名称:用双引号 括起
  2)字符串:用使用双引号 括起
  3)数字,布尔类型不需要 使用双引号 括起
所以,当返回数据为null的时候就不能再success之中判断操作后续了,只能在error里面写后续的操作

你可能感兴趣的:(jquery)