欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

JQuery ajax请求一直返回Error(parsererror)

shiping1 的头像

标签: ajaxjqueryxmlhttprequestfunctionjavascriptjson
 34182人阅读 评论(6) 收藏 举报
 分类:
[javascript] view plaincopyprint?
 
  1. $.ajax({  
  2.             type :"post",  
  3.             url :"busine_in.action",  
  4.             timeout : 40000,  
  5.             data: "centerid="+s,  
  6.             error : function(XMLHttpRequest, textStatus, errorThrown) {   
  7.                     alert(XMLHttpRequest.status);  
  8.                        alert(XMLHttpRequest.readyState);  
  9.                        alert(textStatus);  
  10.                 alert('读取超时,请检查网络连接');  
  11.             },  
  12.             dataType : "json",  
  13.             success : function(data){  
  14.                 alert("1");  
  15.                  $("#select_div").hide();  
  16.                     str='<div style=" overflow:auto;height:430px;">';  
  17.                     str+='<table border="0" cellspacing="0" cellpadding="0" width="100%" class="table2 muma_list">';  
  18.                     str+='<tr>';  
  19.                     str+='<th align="left">区域</th>';  
  20.                     str+='</tr>';  
  21.                 $.each(data,function(i, n){  
  22.                 alert("2");alert(i);alert("n=="+n.length);  
  23.                  if ("list" == i){  
  24.                     str+='<tr>';  
  25.                     str+='<td><a href="javascript:unitedit(\''+n.areaId+'\')" title="点击编辑">'+n.areaName+'</a></td>';  
  26.                     str+='</tr>';  
  27.                  }  
  28.                });  
  29.                     str+='</table>';  
  30.                     str+='</div>';  
  31.                     alert("3");  
  32.                     $("#select_div").html(str);  
  33.              }  
  34.           });  
上述的代码一直进入error,并且
[javascript] view plaincopyprint?
 
  1. alert(textStatus);  

弹出的一直是parsererror

[javascript] view plaincopyprint?
 
  1. alert(XMLHttpRequest.status);  

弹出200正常

[javascript] view plaincopyprint?
 
  1. alert(XMLHttpRequest.readyState);  

弹出4正常

最后发现弹出parsererror的原因是类型的问题,也就是说可能是返回类型出问题了。果然进过查找,发现在struts.xml文件中的ajax请求的action中的result返回类型不是json

来自 http://blog.csdn.net/enterys/article/details/7646295

 

jQuery ajax的dataType:json与js中将字符串转化成json的方式

 
jQuery的ajax,dataType=json ,后台返回的json格式正确 但总是进到error里面,经查找原因后,JQuery1.4 以后,返回的json格式必须是标准的格式,像{a:"a"} 这种是错误的必须是{"a":"a"}
当遇到以上问题时,根本上当然是从返回的数据入手,将返回数据书写成标准的json。
当然,如果后端不能及时返回标准json而我们 又急用的时候可以将dataType设置为text字符串,然后在本地将字符串转化为json,下面介绍3在种转化方式。
1、var json = eval('('+result+')');
2、var json = (new Function('return ' + result))();

普通分类: