jQuery ajax请求成功且返回了数据,但是不进success:function()

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'这一属性,所以导致出现了此问题。

转载于:https://my.oschina.net/u/3268478/blog/1543569

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值