近日在做门户的用户评论时,好长时间没有用jquery了正好用一下,没想到偷工用了post方法去处理ajax回调的json数据,死活取不到,后台就是有json返回了。不料这么小小一个问题挂了我好几个小时,后来我ajax方法处理,居然OK,一比较发现原来post方法回调json必须eval一下,而ajax方法做了默认处理了。 望各位小心。
function haha() { jQuery.post("addComment!comment.action", function aa(data) { data = eval(data);//POST方法必加,ajax方法自动处理了 alert(data[0].userId); alert(data[0].userName); }, "json" ); jQuery.ajax({ type:"post", url:"addComment!comment.action", dataType:"json", success: function aa(data) { alert(data[0].userId); alert(data[0].userName); } }); }
后台:
public String comment() { try{ User u = new User("user", "koko"); list = new ArrayList<User>(); list.add(u); //map.put("id", userId); // JSONObject jb = JSONObject.fromObject(list); // name:"+userName +", // info = jb.toString(); System.out.println(list); } catch (Exception e) { e.printStackTrace(); } return SUCCESS; }
配置:
<package name="ajax" extends="json-default"> <action name="addComment" class="org.test.action.CommentAction"> <result type="json"> <param name="root">list</param> </result> </action>