最近遇到一個問題,發現使用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); }