使用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悬赏奉上。 展开
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悬赏奉上。 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询