jQuery中ajax和post处理json的不同

近日在做门户的用户评论时,好长时间没有用jquery了正好用一下,没想到偷工用了post方法去处理ajax回调的json数据,死活取不到,后台就是有json返回了。不料这么小小一个问题挂了我好几个小时,后来我ajax方法处理,居然OK,一比较发现原来post方法回调json必须eval一下,而ajax方法做了默认处理了。 望各位小心。。。

[javascript]view plaincopyprint?

  1. function haha() {
  2. jQuery.post("addComment!comment.action",
  3. function aa(data) {
  4. data = eval(data);//POST方法必加,ajax方法自动处理了
  5. alert(data[0].userId);
  6. alert(data[0].userName);
  7. },
  8. "json"
  9. );
  10. jQuery.ajax({
  11. type:"post",
  12. url:"addComment!comment.action",
  13. dataType:"json",
  14. success: function aa(data) {
  15. alert(data[0].userId);
  16. alert(data[0].userName);
  17. }
  18. });
  19. }

后台:

[java]view plaincopyprint?

  1. public String comment() {
  2. try{
  3. User u = new User("user", "koko");
  4. list = new ArrayList<User>();
  5. list.add(u);
  6. //map.put("id", userId);
  7. // JSONObject jb = JSONObject.fromObject(list); // name:"+userName +",
  8. // info = jb.toString();
  9. System.out.println(list);
  10. }
  11. catch (Exception e) {
  12. e.printStackTrace();
  13. }
  14. return SUCCESS;
  15. }

配置:

[html]view plaincopyprint?

  1. <package name="ajax" extends="json-default">
  2. <action name="addComment" class="org.test.action.CommentAction">
  3. <result type="json">
  4. <param name="root">list</param>
  5. </result>
  6. </action>
  7. 。。。。。。