当前位置: 代码迷 >> J2EE >> struts2+json+jquery-ajax老是返回error,找不出有关问题
  详细解决方案

struts2+json+jquery-ajax老是返回error,找不出有关问题

热度:70   发布时间:2016-04-22 02:14:04.0
struts2+json+jquery-ajax老是返回error,找不出问题!
先上代码
--------------------------
这里是JS部分
Java code
function getstaffinfo(){         var staffid=$("#staffid").val();     $.ajax({            type: "post",            url: "getInfoById.action?staffid="+$("#staffid").val(),            contentType:"application/json;charset=utf-8",            error:function(){                 alert("err");                              },            success: function(result) {             alert("success");             var json=eval(result);                 var staffname= json.staffname;                 var staffcareer = json.staffcareer;                 document.getElementById("staffname").value=staffname;                 document.getElementById("staffcareer").value=staffcareer;         }});               }


action部分
Java code
private Map<String, String> result;//........省略get/setpublic String getInfoById(){        List<Staff> list = this.getSalaryService().findSalaryTableById(this.getStaffid());        Map<String, String> result2 =new HashMap<String, String>();        result2.put("staffname", list.get(0).getName());        result2.put("staffcareer",list.get(0).getCareer());        this.setResult(result2);        return SUCCESS;            }

HTML
Java code
<tr>      <td colspan="6"><font color="red">*</font>员工工号</td>  <td><input type="text" name="salarytable.staffid" id="staffid" onblur="getstaffinfo()"></td>  <td colspan="6">员工姓名</td>      <td><input type="text"  id="staffname" value="" /></td>  <td colspan="6">员工职位</td>      <td><input type="text"  id="staffcareer" value="" /></td></tr>

struts.xml部分
Java code
<package name="salary2"  extends="json-default">    <result-types>            <result-type name="json" class="org.apache.struts2.json.JSONResult"/>    </result-types>        <action name="getInfoById" class="main.salary.action.SalaryAction" method="getInfoById">        <result name="json"></result>    </action>    </package></struts>


调试的时候一直进error ,也没有报错 ,弄了大半天不知道原因,求大伙帮小弟看看哪里出了问题,还有就是js里取返回的map值该如何写,前面把取值部分放到error里测试了下 输出的是undefined。。。。小弟不才 求跳明路啊!!!!





------解决方案--------------------
啊!!在get方法上加什么注释不让他返回啊?我不知道唉...不过我不是这样干的,我是直接把get方法给干掉了。
探讨

引用:

有一种原因就是你的json返回的数据太多了,struts在包装成json类型的时候出错。 我也出过这种问题,打断点一直执行到最后都成功了,结果ajax返回的状态还是error。后来我把一些不该返回的数据不让他返回,然后就好了。

是不是在action中在数据get方法上加一段代码- - 忘记了 记得第一次用得时候也怎么弄的,那时候是因为把se……
  相关解决方案