我无法从java函数获取字符串响应到ajax调用。我正在使用structs2。我写了一个返回字符串的java函数。功能正常。但是ajax调用中有一些未知错误。
以下是我的jquery ajax调用
<pre>
function saveMyId(){
$.ajax({
url : contextPath+'/action/setMyId',
data: {
myCode:$("#myCode").val(),
myId:$("#myId").val()
},
type : 'post',
async: false,
success : function(data) {
alert(data);
if(data=="success"){
$( "#dialog" ).dialog("close");
$('#myId_Validator').text("");
}
else{
$("#myId").val("");
$("#myId_Validator").val("ID Already exists. Please Choose different one")
}
},
error: function (request, status, error) {
alert("Something went wrong. Please try again later");
}
});
我的java函数是
public String setMyId() throws SQLException {
IdAllocationVO idAllocationVO = new IdAllocationVO();
MyIdServices myIdServices = new MyIdServices();
logger.debug("set My Id , myCode :"+this.myCode);
idAllocationVO.setMyCode(myCode);
idAllocationVO.setMyId(myId);
int response= myIdServices.getMyIdCount(myId);
System.out.println("response:"+response);
if(response==0){
myIdServices.setSenderId(idAllocationVO);
return "success";
}
else{
return "fail";
}
}
我正在使用结构2 而structs.xml标签是
<action name="setMyId" class="com.id.myIsservice.struts.IdAction" method="setMyId">
</action>
函数setMyId()正常工作。我通过打印每一行来检查所有内容。但我的问题是ajax调用将结果视为错误。因此它会提示错误消息“出错了。请稍后再试”。为什么会这样?
答案 0 :(得分:1)
您可以尝试使用三个步骤来查找原因: 1,如果你的ajax电话是正确的? 萤火虫或其他页面dubugger可以告诉你〜 2,当第1步正确时,检查java函数以查看它是否从页面获取请求并将正确的结果响应到页面 IDE调试工具将帮助您〜 3,检查页面得到的结果 通过firebug,您可以看到响应详细信息,例如&#39; status&#39;和其他人......,找出字符串是否已被获取〜
PS: 我明白了,你的java代码直接抛出异常而不使用try / catch。对用户而言,这不是一个好方法。使用〜我建议你添加try / catch代码,用whith可以帮助你更快地找到错误〜