0

ご容赦ください..私はajaxに非常に慣れていないので、コードに問題があります.私のコードは次のとおりです..サーブレットからの応答を取得し、アラートを使用して表示しようとしています..誰かが私に何が問題なのか教えてもらえますか私のコードで:

function checkempid(value) {
    var status = false;
    xmlHttp=GetXmlHttpObject();
    var urlemp="postemployee";
    urlemp=urlemp+"?employeeId="+value;
    xmlHttp.onreadystatechange=stateChangedemp ;
    xmlHttp.open("GET",urlemp,true);
    xmlHttp.send(null);

    function stateChangedemp() { 
        if(xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){ 
            var showdata = xmlHttp.responseText;
            alert(showdata);

            **if(showdata=="Congratulations on your new account!"){
                alert("inside if");
                saveReportFinished(xmlHttp.responseText == 'complete');
            }**
            else{
                alert("inside else");
                saveReportFinished(false); 
            }
        }
    }

    function saveReportFinished(success) {
        if (success == true){
            status = true;
        }
        else {
            status = false;
        }
    }

    function GetXmlHttpObject(){
        var xmlHttp=null;
        try {
            xmlHttp=new XMLHttpRequest();
        }
        catch (e) {
            try {
                xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
            }
            catch (e) {
                xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
            }
        }

        return xmlHttp;
    }

    return status;
}

太字の if ステートメントを確認してください。if 文に入ることはありません。それは常に他のものに入ります..何が問題なのか誰か教えてもらえますか???事前に感謝します.

4

1 に答える 1

0

ここで、その showdata は決して「新しいアカウントをおめでとうございます!」ではないと思います。空白、html フォーマット、またはあなたがやろうとしていることをめちゃくちゃにしている可能性があります。

ステータス コードを使用して、操作が正常に行われたかどうかを検出することをお勧めします (可能であれば、「201 - 作成されました」を返します)。アカウントが作成されていない場合は、client-error-code のいずれかを使用できない場合は 200 (「OK」) を使用します。

ステータス コードを使用できない場合は、応答で xml または json エンコーディングを使用してみてください。これは解析可能で、確定的な結果につながります。

于 2012-07-11T06:25:22.173 に答える