使用jQuery的ajax,取回json数组进行解析的时候出错,求解,谢谢! 200

$.ajax({type:"post",url:"applicationAjaxAction.action",async:true,dataType:"json",cac... $.ajax({
type: "post",
url: "applicationAjaxAction.action",
async: true,
dataType: "json",
cache: false,
data: "x=x"
success: function(data){
alert("success");
}
},
error: function(status, errorThrown){
alert("状态码:" + status.status)
alert("错误原因:" + errorThrown);
}
});
——————————————————————
代码如上图所述,向服务器发送一个ajax请求,然后取回的json类型的数据data再进行处理。
但是不断的命令它调用该函数,绝大多数情况都走error,极少数走success。
error这里,状态码是200,服务器应该没啥问题,然后错误原因是parsererror。
——————————————————————
于是感觉应该是解析返回值出错,果然把dataType: "json",去掉就不出错了。但是我感觉返回的值就是json数组没错啊,服务器端用以下方法生成的json数组:
JSONArray jArr = new JSONArray();
jArr.add(一个List比如List<App>);
System.out.println(jArr.toString());//可以打印出来jArr的东西,里面一个个App实体及属性历历在目
response.getWriter().println(jArr);
但是如果不加这一句,把传回来的data放到eval()中解析缺也解析不出来,返回undefined。
——————————————————————
那么,这是什么原因呢?以前也是用上述方式生成json然后用过原生ajax的responseText然后用eval()进行处理,但是这次不行了。求解,谢谢!

附图片,前台直接打印success的形参data的打印结果,应该是一个json吧:

嘟囔了太多了,还望大神们鼎力相助,200悬赏奉上。
展开
 我来答
v水水无痕v
2014-11-05 · TA获得超过527个赞
知道小有建树答主
回答量:289
采纳率:100%
帮助的人:203万
展开全部
你服务器端用的是JAVA吧?这个报错一般是你返回的数据不是json,所以就会出现这个错误。建议你用UNITTEST去对该方法做个测试。确认你每次生成的JSON都可以正确解压。那JQUERY就应该不会出错了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式