我使用a4j jsFunction将数据发送到服务器并从服务器接收Json
<a4j:jsFunction name="submitData"
action="#{imageRetriveBean.saveData}" data="#{responseNodesPathsBean}"
oncomplete="processData(event.data)">
<a4j:param name="param1" noEscape="true" value="myFunction()"
assignTo="#{imageRetriveBean.requestJsonMsg}" />
<a4j:param name="param2" noEscape="true" value="getFloorNo()"
assignTo="#{imageRetriveBean.floorNo}" />
</a4j:jsFunction>
在下面的processData函数中
function processData(data)
{
console.log(data);
var dataObj = data.responseJsonMsg;
}
console.log正确打印数据。以下是输出。
({responseJsonMsg:"{//my data}"})
但我无法使用data.responseJsonMsg
访问数据控制台提供错误
TypeError: data is undefined
发生错误的代码图像以及Chrome上的错误输出
https://docs.google.com/file/d/0B2LrAStQ7RleOUtHMTRfT2sxams/edit?usp=sharing
https://docs.google.com/file/d/0B2LrAStQ7RleU09Vdll1VURaT2c/edit?usp=sharing
请帮助我知道我哪里错了。 感谢
答案 0 :(得分:0)
如果这是console.log的输出,那么它不是一个javascript对象,你需要解析它JSON.parse(data)
,尽管从你所显示的那个不是一个有效的json字符串,所以它仍然错了。它需要删除括号,responseJsonMsg需要引用等。你需要让你的服务器端代码输出一个有效的json字符串
//my data
应该是实际数据,它应该看起来像
{"responseJsonMsg":{
"name":"patrick",
"where":"here"
}}