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 有赏,i卡绘世画不出
  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题
  • ¥15 FPGA-SRIO初始化失败
  • ¥15 MapReduce实现倒排索引失败
  • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
  • ¥15 找一位技术过硬的游戏pj程序员
  • ¥15 matlab生成电测深三层曲线模型代码