最近遇到一个问题,发现使用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); }