2011-11-12 61 views
0

我的PHP代碼響應AJAX調用不同的字符串,具體取決於...所以我想測試響應,但我一直無法做到這一點。我發現responseText是undefined類型,所以試過類型轉換:無法測試AJAX ResponseText

if (String(xmlhttp.responseText)=="OK") 
{ 
    // do something 
} else 
{ 
    // display the responseText 
    document.getElementById(spanID).innerHTML=xmlhttp.responseText; 
} 

猜猜顯示什麼?好。 (同樣沒有類型轉換)。爲什麼?

+0

你的意思是,雖然反應是'OK'的'else'塊運行?響應中是否有空格? – pimvdb

+0

嘗試檢查您的響應的字符串長度 - 它可能不是兩個的長度。 – Repox

+0

你是否試過修剪任何空格? – Matt

回答

1

如果真的沒有超過我們在這裏看到的,您的字符串必須有空白或其他非打印字符。在比較之前嘗試修剪它。

編輯也嘗試將控制檯日誌記錄到'if'和'else'塊中 - 也許你的方法被意外地多次調用,並且存在奇怪的競爭條件。

+0

及其他(感謝)-same輸出使用時(顯然 'OK' 代入文檔元素): \t如果(xmlhttp.readyState == 4 && xmlhttp.status == 200){ \t變種修整=字符串(XMLHTTP .responseText).replace(/^\ s + | \ s + $/g,''); \t如果(修剪== 「OK」) \t { \t \t \t //做點什麼 \t \t} \t其他 \t { \t \t的document.getElementById(spanID).innerHTML =修剪; \t} } 奇怪? – user1043568

0

嘗試以下操作:

var text = xmlhttp.responseText.trim();//use trim() 

if (text=="OK"){ 
    // do something 
}else{ 
    // display the responseText 
    document.getElementById(spanID).innerHTML=xmlhttp.responseText; 
}