2012-11-07 86 views
1

使用函數storeSessionId(),我檢索storedSession的值,並使用AJAX從servlet中分配給sessionId。通過ajax從Servlet中檢索值時,JavaScript比較失敗

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"; 
    } 
} 
+0

我試過。但越來越值null only .. –

回答

0

的解決方案是,

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

我在傳遞SessionID的值修剪()...

感謝所有誰幫我..

1

最可能是sessionId是一個空字符串""。嘗試改變條件爲

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

這將只檢查一個truthy值,其中空字符串不是。

+0

不,我在控制檯通過我的servlet獲得值爲「sessionId:null」 –

+0

在alertbox中獲取sessionId爲空。 –

+0

「sessionId:null」是整個響應嗎?如果是這樣,你需要解析出這個值。我會用正則表達式來隔離這個值,像'sessionId.match(/:(。+)/)[1]!=「null」;'See http://jsfiddle.net/mhPry/ – slashnick

0

您在比較sessionId != null這是錯誤的。

alert(sessionId)知道響應值。

嘗試:

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

第一個條件檢查是否sessionIdundefined,然後null字符串。

+0

這裏我只在javaScript中存儲sessionId值。所以我只能使用==比較。我認爲equals()在JavaScript中不可用? –

+0

@Anand:抱歉,我的壞話。我編輯了答案 –

+0

在alertbox中獲取sessionId爲空。 –