近日在做门户的用户评论时,好长时间没有用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>
- 。。。。。。