当通过ajax从Servlet检索值时,JavaScript比较失败

时间:2012-11-07 11:02:38

标签: javascript ajax servlets

使用函数storeSessionId(),我检索了storedSession的值,并使用AJAX从servlet分配给sessionId。

   var storedSession;
   var sessionId;       

function storeSessionId(){
    try
    {
        xmlhttp.onreadystatechange=function()
        {
            if (xmlhttp.readyState==4 && xmlhttp.status==200)
            {
                storedSession = xmlhttp.responseText.toString();
                sessionIdValue(storedSession);

            }
        };
        xmlhttp.open("POST","JoinAction?subject="+subject+"&userId="+userId+"&secureKey="+secureKey,true);
        xmlhttp.send();
    }
    catch(err)
    {
        alert(err.description);
    }
}

当我比较sessionId!=null时,只显示我的div,否则无法显示。

但即使我也得到sessionId==null,我的div也显示出来了。我的div显示在两种情况下。

function sessionIdValue(storedSession){
    sessionId = storedSession;
    if(sessionId != null && sessionId != "null"){
        document.getElementById("div").style.display="inline";
    }
}

3 个答案:

答案 0 :(得分:1)

很可能sessionId是一个空字符串""。尝试将条件更改为

if(sessionId && sessionId != "null")

这只会检查空字符串不是真值。

答案 1 :(得分:0)

您正在比较不正确的sessionId != null

alert(sessionId)知道响应值。

尝试:

if(sessionId && sessionId != "null"){
 document.getElementById("div").style.display="inline";
}

第一个条件检查sessionId是否不是undefined,然后是null字符串。

答案 2 :(得分:0)

解决方案是,

function trim(stringToTrim) {
    return stringToTrim.replace(/^\s+|\s+$/g, "");
}

我将sessionId值传递给trim()...

感谢所有帮助过我的人..