ajax中用jsonObject传值为undefined

guita_r 2013-01-23 01:31:01
对这些不是很懂啊 我照着别的模块写的 那个模块是好的 但是我这里写的传到页面就是undefined。。
我前台是用ajax掉action里面的方法 代码如下:
$jq.post("${pageContext.request.contextPath}***", function(data){
if(data != false){
$jq("input[name='trainMan']").val(data.userId);
$jq("input[name='trainManName']").val(data.userName);
}else{
alert("获取部门负责人默认值失败!");
}
},"json");

后台action主要代码如下:
JSONObject jsonObject = new JSONObject();
HttpServletRequest request = ServletActionContext.getRequest();
HttpServletResponse response = ServletActionContext.getResponse();
***
jsonObject.put("userId", userId);
jsonObject.put("userName", userName);
response.setCharacterEncoding("UTF-8");
response.getWriter().write(jsonObject.toString());

传的参数打印出来都没有问题
jsonObject的值是这样的:
{"userId":"***","userName":"***"}

在线等大神求助! 我在别的模块也是这么写,但是没有问题。是jsonObject的类型需要转换吗?谢谢!
...全文
429 20 点赞 打赏 收藏 举报
写回复
20 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
mintsong 2014-03-13
同样的问题,终于解决了 不过想知道为什么........
  • 打赏
  • 举报
回复
guita_r 2013-01-23
引用 17 楼 showbo 的回复:
JavaScript code?12345678910111213$jq.post("${pageContext.request.contextPath}***", function(data){if(data != false){ //////////////////////////////////////////alert(data)///看输出什么for(a in ……
谢谢 已经搞定了 还是谢谢啊
  • 打赏
  • 举报
回复
guita_r 2013-01-23
引用 16 楼 datiexiong 的回复:
eval的话 如果你的data在console.log中打印出来是{"userId":"***","userName":"***"}这样的话 JavaScript code?12345678$jq.post("${pageContext.request.contextPath}***", function(data){var obj = eval('('+data……
太感谢了! 好了,取到值了!有种找到家的感觉!!
  • 打赏
  • 举报
回复
$jq.post("${pageContext.request.contextPath}***", function(data){
if(data != false){

//////////////////////////////////////////
alert(data)///看输出什么
for(a in data)alert(a)
//////////////////////////////////////////
$jq("input[name='trainMan']").val(data.userId);
$jq("input[name='trainManName']").val(data.userName);
}else{
alert("获取部门负责人默认值失败!");
}
},"json");
  • 打赏
  • 举报
回复
爱若如梦 2013-01-23
eval的话 如果你的data在console.log中打印出来是{"userId":"***","userName":"***"}这样的话
$jq.post("${pageContext.request.contextPath}***", function(data){
var obj = eval('('+data+')');//不行就
if(obj){
$jq("input[name='trainMan']").val(obj .userId);
$jq("input[name='trainManName']").val(obj .userName);
}else{
alert("获取部门负责人默认值失败!");
}
},"json");
  • 打赏
  • 举报
回复
guita_r 2013-01-23
引用 14 楼 datiexiong 的回复:
可能还是字符串没有变成js是别的对象 使用 $jq.jsonToObject试试 $jq.post("${pageContext.request.contextPath}***", function(data){ var obj = $jq.jsonToObject(data);//不行就eval if(obj){ $jq("input[name='train……
我照着这样写的 页面报js错误 对象不支持此属性或方法 是不是少包含了哪个文件? 还有如果要用eval要怎么用啊 新人了解 这些之前都没有用过的。。
  • 打赏
  • 举报
回复
爱若如梦 2013-01-23
可能还是字符串没有变成js是别的对象 使用 $jq.jsonToObject试试 $jq.post("${pageContext.request.contextPath}***", function(data){ var obj = $jq.jsonToObject(data);//不行就eval if(obj){ $jq("input[name='trainMan']").val(obj .userId); $jq("input[name='trainManName']").val(obj .userName); }else{ alert("获取部门负责人默认值失败!"); } },"json");
  • 打赏
  • 举报
回复
guita_r 2013-01-23
好吧 原来这个console.log(data);是输出日志啊 我还以为是解决方法呢 嘿嘿 还有我传的userId和userName是比较长的字符串 跟字符串长度有关系吗?
  • 打赏
  • 举报
回复
guita_r 2013-01-23
引用 8 楼 datiexiong 的回复:
引用 6 楼 guita_r 的回复:引用 2 楼 datiexiong 的回复:先看看 JavaScript code?12jsonObject.put("userId", userId);jsonObject.put("userName", userName); 中的userId以及userName是否为空是否是空字符串 最好打到日志中看一下。 userI……
就是按照你说的那样写么 js里面可以加<span>标签? 我加了报错啊 去掉的话 这样写也报错 是在头文件需要包含什么吗? console.log(data); 这个真的不会用 新人。。
$jq.post("${pageContext.request.contextPath}***", function(data){
console.log(data);
if(data != false){
$jq("input[name='trainMan']").val(data.userId);
$jq("input[name='trainManName']").val(data.userName);
}else{
alert("获取部门负责人默认值失败!");
}
},"json");
返回的值打出来是{"userId":"***","userName":"***"} 这样的 其中***是我省略的我需要的值
  • 打赏
  • 举报
回复
爱若如梦 2013-01-23
怀疑返回的是个数组,需要的变量为 data[0].userId
  • 打赏
  • 举报
回复
guita_r 2013-01-23
引用 4 楼 XQsoul 的回复:
trainMan和trainManName这两个控件没有找到, 这样试试。 $jq("input[id*='trainMan']").val(data.userId); $jq("input[id*='trainManName']").val(data.userName);
应该不是这个问题 因为我是在执行这两条之前执行的alert(data.userId);的 打出来的就是undefined
  • 打赏
  • 举报
回复
爱若如梦 2013-01-23
console.log(data);文本编辑不会用
  • 打赏
  • 举报
回复
爱若如梦 2013-01-23
引用 6 楼 guita_r 的回复:
引用 2 楼 datiexiong 的回复:先看看 JavaScript code?12jsonObject.put("userId", userId);jsonObject.put("userName", userName); 中的userId以及userName是否为空是否是空字符串 最好打到日志中看一下。 userId和userName 打印出来是我需要……
那把返回的data打出来,ie7,chrome 或者firefox按f12掉出控制台 然后再js对应加上console.log 如下
$jq.post("${pageContext.request.contextPath}***", function(data){
console.log(data);
if(data != false){
$jq("input[name='trainMan']").val(data.userId);
$jq("input[name='trainManName']").val(data.userName);
}else{
alert("获取部门负责人默认值失败!");
}
},"json");
  • 打赏
  • 举报
回复
guita_r 2013-01-23
引用 3 楼 showbo 的回复:
${pageContext.request.contextPath}*** 访问这个url地址看输出是{"userId":"***","userName":"***"} 这种没有,后台打印和最终发送到客户端的内容不一定全部一样的
jsonObject 打印出来就是{"userId":"***","userName":"***"} 这样的 其中***是我省略的我需要的值
  • 打赏
  • 举报
回复
guita_r 2013-01-23
引用 2 楼 datiexiong 的回复:
先看看 JavaScript code?12jsonObject.put("userId", userId);jsonObject.put("userName", userName); 中的userId以及userName是否为空是否是空字符串 最好打到日志中看一下。
userId和userName 打印出来是我需要的正确的值 不为空。
  • 打赏
  • 举报
回复
guita_r 2013-01-23
引用 1 楼 xiaofan_sap 的回复:
那个变量 是 undefined?
alert(data.userId); alert(data.userName); 这两个打出来是undefined
  • 打赏
  • 举报
回复
XQSoul 2013-01-23
trainMan和trainManName这两个控件没有找到, 这样试试。 $jq("input[id*='trainMan']").val(data.userId); $jq("input[id*='trainManName']").val(data.userName);
  • 打赏
  • 举报
回复
${pageContext.request.contextPath}*** 访问这个url地址看输出是{"userId":"***","userName":"***"} 这种没有,后台打印和最终发送到客户端的内容不一定全部一样的
  • 打赏
  • 举报
回复
爱若如梦 2013-01-23
先看看
jsonObject.put("userId", userId);
jsonObject.put("userName", userName);
中的userId以及userName是否为空是否是空字符串 最好打到日志中看一下。
  • 打赏
  • 举报
回复
xiaofan_sap 2013-01-23
那个变量 是 undefined?
  • 打赏
  • 举报
回复
相关推荐
发帖
Ajax
加入

5.2w+

社区成员

Web 开发 Ajax
申请成为版主
帖子事件
创建了帖子
2013-01-23 01:31
社区公告
暂无公告