Javascript/AJAX发送多个返回

Javascript/AJAX发送多个返回,javascript,jquery,ajax,Javascript,Jquery,Ajax,我试图在用户输入其凭据并验证凭据后替换表行。这是对servlet的简单AJAX调用,发送凭证并返回一些特定信息(名字、姓氏、邮政编码等) 我注意到,对authenticate的调用实际上返回了多次,第一对为null且“未定义”。我输入了一些代码来处理这个问题,然后删除了所有的故障排除警报,并注意到它根本不起作用 在authenticate()返回之前发出警报,它将按照我的预期工作。但是,如果我解除警报,它将停止工作。 我并没有太多地使用AJAX,也不能定义足够的问题来进行在线研究。我希望有人能认

我试图在用户输入其凭据并验证凭据后替换表行。这是对servlet的简单AJAX调用,发送凭证并返回一些特定信息(名字、姓氏、邮政编码等)

我注意到,对authenticate的调用实际上返回了多次,第一对为null且“未定义”。我输入了一些代码来处理这个问题,然后删除了所有的故障排除警报,并注意到它根本不起作用

在authenticate()返回之前发出警报,它将按照我的预期工作。但是,如果我解除警报,它将停止工作。

我并没有太多地使用AJAX,也不能定义足够的问题来进行在线研究。我希望有人能认识到我的问题,尽管我在描述这个问题时做得很糟糕

那么,我在这件事上哪里做错了

HTML:


培训每日活动报告
html{
背景:url(images/officebuilding.jpg)无重复中心固定;
-webkit背景尺寸:封面;
-moz背景尺寸:封面;
-o-背景尺寸:封面;
背景尺寸:封面;
}
每日活动报告
工作类别:

练习生 DTO/培训师 阶段 圆点
学员评论:你学到了什么?你还需要知道什么?
DTO评论:受训人员的哪些方面需要改进?
登录ID 密码 学员认证: 证明…是真实的 DTO身份验证: 证明…是真实的 DTS身份验证: 证明…是真实的 保存每日活动报告

JS:

函数authenticateUser(){
var logon=document.getElementById(“txtTraineeAuthLogon”).value;
var pw=document.getElementById(“txtTraineeAuthPW”).value;
如果(登录!=null&&pw!=null){
var tmp=身份验证(登录,pw);
var-tmp2;
如果(tmp!=null){//authenticate返回多个结果,前几个结果为“null”或“未定义”
if(tmp.toLowerCase()!=“未定义”){
tmp2=tmp;
}
}
如果(tmp2!=null){
var tmpRow=“”
+ "                        "
+“学员身份验证:”
+ "                        "
+ "                        "
+“身份验证为”+tmp2+“”
+ "                        "
+ "                    ";
$(“td#tdtraineeeauthentication”).parent()替换为(tmpRow);
}
}
}
函数authenticateDTO(){
}
函数authenticateDTS(){
}
功能验证(登录、密码){
var returnString=null;
var Givename;
var-sn;
var后置码;
$.ajax({
url:'DARServlet',
数据:{
formType:“验证”,登录:登录,密码:密码
},
contentType:'应用程序/json',
mimeType:'应用程序
<!DOCTYPE html>
<html>
<head>
    <title>Training Daily Activity Report</title>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" type="text/css" href="stylesheets/dar.css">
    <script src="js/DAR.js"></script>
    <script src="js/jquery-1.10.2.min.js"></script>
    <style type='text/css'>
        html { 
            background: url(images/officebuilding.jpg) no-repeat center center fixed; 
            -webkit-background-size: cover;
            -moz-background-size: cover;
            -o-background-size: cover;
            background-size: cover;
        }
    </style>
</head>
<body>
    <div style='width: 100%;text-align: center;margin-top: 55px;'>
        <div style='width: 90%;margin-right: auto; margin-left: auto;'>
            <form id='fmDAR' action='DARServlet' method='post'>
                <input type="hidden" id="formType" name="formType" value="" />
            </form>
            <table style='width: 100%'>
                <tr>
                    <td colspan='2' class='firstBlock'>
                        <span style='font-size: 24px'>Daily Activity Report</span>
                    </td>
                </tr>
                <tr>
                    <td style='width: 15%;text-align: right;'>
                        <span style='padding-right: 5px;'>Categories worked on:</span>
                    </td>
                    <td style='width: 75%;'>
                        <textarea rows='3' style='width: 99%;' type='text' id='taCategories' name='taCategories' value=''></textarea>
                    </td>
                </tr>
            </table>
            <br>
            <table style='width: 100%;'>
                <tr>
                    <td class="secondBlock">
                        <span>Trainee</span>
                    </td>
                    <td class="secondBlock">
                        <span>DTO/Trainer</span>
                    </td>
                    <td class="secondBlock">
                        <span>Phase</span>
                    </td>
                    <td class="secondBlock">
                        <span>DOT</span>
                    </td>
                </tr>
                <tr>
                    <td style='text-align: center;'>
                        <input style="width: 98%;" type="text" id="txtTrainee" name="txtTrainee" value="" />
                    </td>
                    <td style='text-align: center;'>
                        <input style='width: 98%;' type="text" id="txtTrainee" name="txtTrainee" value="" />
                    </td>
                    <td style='text-align: center;'>
                        <input style='width: 98%;' type="text" id="txtTrainee" name="txtTrainee" value="" />
                    </td>
                    <td style='text-align: center;'>
                        <input style='width: 98%;' type="text" id="txtTrainee" name="txtTrainee" value="" />
                    </td>
                </tr>
            </table>
            <br>
            <table style='width: 100%;'>
                <tr>
                    <td class='thirdBlock'>
                        Trainee's Comments:  What did you learn?  What do you still need to know?
                    </td>
                </tr>
                <tr>
                    <td style='width: 100%;'>
                        <textarea style='width: 99%;' rows='8' id='taTraineeComments' name='taTraineeComments' value=''></textarea>
                    </td>
                </tr>
            </table>
            <br>
            <table style='width: 100%;'>
                <tr>
                    <td class='fourthBlock'>
                        DTO Comments:  What areas of trainee performance need improvement?
                    </td>
                </tr>
                <tr>
                    <td style='width: 100%;'>
                        <textarea style='width: 99%;' rows='8' id='taDTOComments' name='taDTOComments' value=''></textarea>
                    </td>
                </tr>
            </table>
            <br>
            <table style='width: 100%;'>
                <thead>
                    <tr>
                        <td>&nbsp;</td>
                        <td>Logon ID</td>
                        <td>Password</td>
                        <td>&nbsp;</td>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td class='authentication' id='tdTraineeAuthentication'>
                            Trainee Authentication:
                        </td>
                        <td>
                            <input type='text' id='txtTraineeAuthLogon' name='txtTraineeAuthLogon' value='' />
                        </td>
                        <td>
                            <input type='password' id='txtTraineeAuthPW' name='txtTraineeAuthPW' value='' />
                        </td>
                        <td>
                            <button onclick='authenticateUser()'>Authenticate</button>
                        </td>
                    </tr>
                    <tr>
                        <td class='authentication'>
                            DTO Authentication:
                        </td>
                        <td>
                            <input type='text' id='txtDTOAuthLogon' name='txtDTOAuthLogon' value='' />
                        </td>
                        <td>
                            <input type='password' id='txtDTOAuthPW' name='txtDTOAuthPW' value='' />
                        </td>
                        <td>
                            <button onclick='authenticateDTO()'>Authenticate</button>
                        </td>
                    </tr>
                    <tr>
                        <td class='authentication'>
                            DTS Authentication:
                        </td>
                        <td>
                            <input type='text' id='txtDTSAuthLogon' name='txtDTSAuthLogon' value='' />
                        </td>
                        <td>
                            <input type='password' id='txtDTSAuthPW' name='txtDTSAuthPW' value='' />
                        </td>
                        <td>
                            <button onclick='authenticateDTS()'>Authenticate</button>
                        </td>
                    </tr>
                </tbody>
            </table>
        </div>
        <div style='text-align: center;margin-top: 20px;'>
            <button style='height: 45px;' id='btnSave' onclick='saveDAR()'>Save Daily Activity Report</button>
        </div>
    </div>

</body>
function authenticateUser() {
    var logon = document.getElementById("txtTraineeAuthLogon").value;
    var pw = document.getElementById("txtTraineeAuthPW").value;
    if (logon != null && pw != null) {
        var tmp = authenticate(logon, pw);
        var tmp2;
        if (tmp != null) { //authenticate returns several results, the first few being "null" or "undefined"
            if (tmp.toLowerCase() != 'undefined') {
                tmp2 = tmp;
            }
        }
        if (tmp2 != null) {
            var tmpRow = "                    <tr>"
                    + "                        <td class='authentication' id='trTraineeAuthentication'>"
                    + "                            Trainee Authentication:"
                    + "                        </td>"
                    + "                        <td colspan='3' style=\"text-align: center;\">"
                    + "                            Authenticated as " + tmp2 + ""
                    + "                        </td>"
                    + "                    </tr>";
            $("td#tdTraineeAuthentication").parent().replaceWith(tmpRow);
        }
    }
}
function authenticateDTO() {
}
function authenticateDTS() {
}
function authenticate(logon, password) {
    var returnString = null;
    var givenName;
    var sn;
    var postalCode;
    $.ajax({
        url: 'DARServlet',
        data: {
            formType: 'authenticate', logon: logon, password: password
        },
        contentType: 'application/json',
        mimeType: 'application/json',
        success: function (responseText) {
            $.each(responseText, function (key, value) {
                if (key == "givenName") {
                    givenName = value;
                } else if (key == "sn") {
                    sn = value;
                } else if (key == "postalCode") {
                    postalCode = value;
                }
            });
            returnString = givenName + " " + sn + ", Employee #: " + postalCode;
            //alert(returnString);
        },
        error: function (request, status, error) {
            alert("The credentials used cannot be authenticated.  Please re-enter and try again.");
            return null;
        }
    });
    alert("returnString: " + returnString);
    return returnString;
}
authenticate(logon, password).then(function(returnString) {
  // your logic 
});