2011-11-12 7 views
0

私のPHPコードは、異なる文字列でAJAX呼び出しに応答します。したがって、応答をテストしたいのですが、できませんでした。 responseTextが未定義のタイプで、タイプキャストが試行されたことが判明しました。AJAX ResponseTextをテストすることができません

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

何が表示されるのでしょうか? OK。 (同じ型キャストなしで)。どうして?

+0

あなたが応答が 'OK'ている間' else'ブロックが実行されていることを意味ですか?応答にスペースがありますか? – pimvdb

+0

あなたの応答の文字列の長さをチェックしてみてください。おそらく長さは2ではありません。 – Repox

+0

空白を削除しようとしましたか?使用時 – Matt

答えて

1

本当にここに表示されている文字列以外の文字列であれば、文字列に空白文字やその他の印刷できない文字が含まれている必要があります。比較を行う前にトリミングしてみてください。

編集また、「if」ブロックと「else」ブロックの両方にコンソールログを記録してみてください。おそらく、あなたのメソッドが予期せず複数回呼び出されていて、奇妙な競合状態です。

+0

・その他(おかげ)-same出力(明らかに 'OK' 文書要素に置換される):(xmlhttp.readyStateの== 4 && xmlhttp.statusの== 200){ \t varが=文字列(XMLHTTPをトリミング\t場合 .responseText).replace(/^\ s + | \ s + $/g、 ''); \t場合(トリミング== "OK") \t { \t \t \t //何か \t \t行う}他 \t \t { \t \tのdocument.getElementById(spanID).innerHTML =トリミングを。 \t} } odd? – user1043568

0

は、以下のことを試してみてください。

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

if (text=="OK"){ 
    // do something 
}else{ 
    // display the responseText 
    document.getElementById(spanID).innerHTML=xmlhttp.responseText; 
} 
関連する問題