近日在做门户的用户评论时,好长时间没有用jquery了正好用一下,没想到偷工用了post方法去处理ajax回调的json数据,死活取不到,后台就是有json返回了。不料这么小小一个问题挂了我好几个小时,后来我ajax方法处理,居然OK,一比较发现原来post方法回调json必须eval一下,而ajax方法做了默认处理了。 望各位小心。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
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>