2019独角兽企业重金招聘Python工程师标准>>>
1.状态码返回200--表明服务器正常响应了客户端的请求;
2.通过firebug和IE的httpWatcher可以看出服务器端返回了正常的数据,并且是符合业务逻辑的数据,但程序就是不进入回调函数success:function(data){****}而是进入到error: function(data){***},记得上次是因为存在跨域访问的问题导致。这次查看不存在跨域的问题;
3.返回的数据类型一定要符合定义的数据类型。即如果你定义的 dataType 是 json 类型的,那么返回来的数据一定是 json 才可以,不然就会执行 error 里的程序;
4.同时需要特别的注意返回的JSON数据是否是严格的JSON格式;
5.也应该严重关切当后台返回的是一个List 数据(List当中的数据是Json格式)时,有没脏数据即不是严格的JSON格式。很隐蔽的可能是数据某一个字段中在开始或末尾含有特殊字符,以"回车键"、"Tab键"等;
6.还有一点对JQuery 中ajax的一点其它的认识: 客户端发起请求,得到服务器端的相应是200(正确拿到服务器响应的数据)没有问题.此时在判断进入success 对应的回调函数还是进入到error对应的回调函数之前,可能会校验一些东西:
a.返回的每条数据是否是dataType中定义的数据类型。如果有部分数据不是或者哪怕一条数据没有严格的按照dataType定义的类型,程序就会进入到error:function(){****};
b.请求的域和当前域是否是同一域,如果不是同一域也十分有可能进入error:function(){***}。
------------------------------------------------------------------------------------------------------------
通过以上总结,再对照ajax看了一遍,发现少配了一个属性(dataType属性)因为数据类型返回的是json类型,而没有配dataType:'json'这一属性,所以导致出现了此问题。