日期:2014-05-17  浏览次数:20759 次

jquery的ajax得不到data
后台查到数据为{"remark":"kan","userid":588,"unprocnum":4,"unprocmakupnum":2}
将数据转为json
jsons = JSONObject.fromObject(opencallUser);
return SUCCESS;

xml配置:
<action name="searchOpencallUser" class="com.smartcoms.web.action.OpenCallUserAction">
<result name="success" type="json"/>
</action>

前台:

$.ajax({  
cache:false,
type : "get",
url :"<%= request.getContextPath() %>"+"/json/searchOpencallUser.action",
datatype : "json",
success : function(data){
var json = eval("("+data+")");
$('#unProcnum').text(json.mark);
}
});  
SyntaxError: missing ] after element list
[在此错误处中断]

([object Object])
var json = eval("("+data+")");解析失败。

data是否拿到后台传递的值?


求各位大能解决。

------解决方案--------------------
楼主 你搞混淆了,,其实有两种方案的,
第一种:
为你的 opencallUser变量加上 get方法。然后 在配置的xml中的package中 extends="json-default",然后再在对应的action中配置result,这样子:<result type="json"></result>。
然后再回调函数中接收的参数就不用再 重新运算求出参数的内容,即 var json = eval("("+data+")"); 这步可以不用写了,struts2已经帮你做好了。
第二种:

就和你写的差不多,只不过 ,action应该return null,然后把对应的 配置去掉。就可以了 。。


我又发现个问题 :
datatype : "json",
你的dataType 的t是不是应该大写 ,,我不知道 没试过,你试试看。。Good luck~~

------解决方案--------------------
response.getWriter().write(JsonUtil.getJson())
return null; 用这个转一下看看

------解决方案--------------------
对啊,怎么是return SUCCESS的??

探讨

response.getWriter().write(JsonUtil.getJson())
return null; 用这个转一下看看