jquery ajax-从函数中获取响应字符串

时间:2015-06-05 06:33:33

标签: java jquery ajax struct

我无法从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调用将结果视为错误。因此它会提示错误消息“出错了。请稍后再试”。为什么会这样?

1 个答案:

答案 0 :(得分:1)

您可以尝试使用三个步骤来查找原因: 1,如果你的ajax电话是正确的?    萤火虫或其他页面dubugger可以告诉你〜 2,当第1步正确时,检查java函数以查看它是否从页面获取请求并将正确的结果响应到页面    IDE调试工具将帮助您〜 3,检查页面得到的结果    通过firebug,您可以看到响应详细信息,例如&#39; status&#39;和其他人......,找出字符串是否已被获取〜

PS: 我明白了,你的java代码直接抛出异常而不使用try / catch。对用户而言,这不是一个好方法。使用〜我建议你添加try / catch代码,用whith可以帮助你更快地找到错误〜