$.ajax请求返回数据中status为200,回调的却是error?

 1 $.ajax({
 2             type:'get',//使用get方法访问后台
 3             dataType:'json',//访问json格式的数据
 4             url:'http://job.hainan.net/api/recruitment_base_list.jsp',//要访问的后台地址
 5             data:reqParam,//要发送的数据
 6             beforeSend: function(XMLHttpRequest){
 7                 $(".icon-loading").css("display","block");
 8             },
 9             complete:function(XMLHttpRequest){
10                 $(".icon-loading").css("display","none");
11             },
12             error:function(data){
13                 console.log(data) 
14             },
15             success:function(data){//data为返回的数据,在这里做数据绑定
16                 //如果有要提取的数据,提取出来
17                 $.each(data,function(index,item){
18 
19                     companyName = getRealLength(item.companyName,12);
20                     positionName = getRealLength(item.positionName,10);
21                     tplHTML += cardtpl.replace(/$jobName/g,item.positionName)
22                         .replace(/$jobname/g,positionName)
23                         .replace(/$posId/g,item.id)
24                         .replace(/$salary/g,item.salaryDes)
25                         .replace(/$companyName/g,item.companyName)
26                         .replace(/$companyname/g,companyName)
27                         .replace(/$companyId/g,item.companyId)
28                         .replace(/$experience/g,item.workingAgeDes);
29 
30                     if((index+1)%10==0||index+1 == data.length){
31                         $('.tabs-content>ul').append(tplHTML);
32                         tplHTML="";
33                     }
34                 })
35             }
36         });

代码无错误,由于有一段返回数据没数据展示,查看了chrome浏览器控制台发现status=200,readystate=4,却调用的是error函数。通过排查是因为返回的json数据不严谨,包含了转义符号导致。和后端开发人员商量好了修改一下返回数据。数据更新之后再测试则没有发生同样错误。证明猜想正确。

原文地址:https://www.cnblogs.com/zhangjiehui/p/4651580.html