最近遇到一个问题,发现使用jquery的ajax方法时,回调方法无法执行,而使用$.load()方法时却能正确返回数据。经过长时间调试最终发现是自己粗心大意,原来后台返回的是json数据,而返回的数据是使用字符串拼接为json数据,拼接时缺少了逗号分隔,导致返回的json数据格式错误,导致执行了error中的回调函数,并未执行success的回调函数。
错误的数据如下:
for (ZFMPA zfmpa : list) {
json="{\"nbr\":\""+zfmpa.getPA001()+"\"\"date\":\""+zfmpa.getPA003()+"\"\"pn\":\""+zfmpa.getPA005()+"\"\"name\":\""+zfmpa.getPA006()+
"\"\"unit\":\""+zfmpa.getPA007()+"\"\"base\":\""+zfmpa.getPA009()+"\"\"qty\":\""+zfmpa.getPA013()+"\"\"cases\":\""+zfmpa.getPA015()+
"\"\"num\":\""+zfmpa.getPA017()+"\"\"wnum\":\""+zfmpa.getPA014()+"\"}";
writer.println(json);
}
最后修改正确的返回格式,问题解决。
for (ZFMPA zfmpa : list) {
json="{\"nbr\":\""+zfmpa.getPA001()+"\",\"date\":\""+zfmpa.getPA003()+"\",\"pn\":\""+zfmpa.getPA005()+"\",\"name\":\""+zfmpa.getPA006()+
"\",\"unit\":\""+zfmpa.getPA007()+"\",\"base\":\""+zfmpa.getPA009()+"\",\"qty\":\""+zfmpa.getPA013()+"\",\"cases\":\""+zfmpa.getPA015()+
"\",\"num\":\""+zfmpa.getPA017()+"\",\"wnum\":\""+zfmpa.getPA014()+"\"}";
writer.println(json);
}