gzqGyula 2012-07-18 09:21
浏览 331
已采纳

ajax—json返回undefined,大家帮忙看看,非常感谢了!!!!

js代码:
var url="${pageContext.request.contextPath}/updateHSwitch.action";
$.post(url,{isID:hsID,isSwitch:hsSwitch,dataType:"json",success:function(jsonres){
alert(jsonres);       //s弹出undefined
var json = eval("(" + jsonres + ")");

alert(json);    //s弹出undefined

}
});

action代码:

public String updateHSwitch() {
System.out.println(".............");
if(isID==100) return "ERROR";
dataList=hostSwitchBiz.getHostSwitch(isID); //根据ID获取信息
for (int i = 0; i < dataList.size(); i++) {
hostswitch=(SwHostswitch)dataList.get(i);
}
hostswitch.setIsSwitch(isSwitch); //替换开关状态数据
explanList=hostSwitchBiz.updateHSwitch(hostswitch); //更新整条数据

JSONArray jsonres=JSONArray.fromObject(explanList);
System.out.println(jsonres.toString());

//输出[{"isCommand":"#58008# ","isOpenExplain":"语音提示 ","isState":"内部空号音提示","isSwitch":"0","isShutExplain":"听空好音 ","isExplain":"内部空好音提示:1 语音提示,0 听空号音","isId":8}]
return "jsonres";

}

xml配置:



  • 写回答

8条回答 默认 最新

  • weixin_42608382 2012-07-18 14:08
    关注

    你这段代码,有几个地方需要调整一下。
    $.post() 换成 $.ajax();
    dataType:"json",这个属性我不清楚对$.post()也是起作用的。

    第二个是action里面 按需(前端要什么就给什么)向前台返回数据比较合理
    直接将jsonres.toString();通过Response对象返回到前台。
    这个也就不需要了
    return null;就行了。

    type="json" 会对所有提供get方法的字段进行处理。如果变量比较多就不好玩了。

    也不用非要用json这样的修饰,你就当是字符串,返回到前端像你用eval 也有json2.js这样的工具类,在处理一下就OK了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(7条)

报告相同问题?

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。