AJAX ResponseTextをテストできません

私のPHPコードは、AJAX呼び出しに応じて異なる文字列で応答します...その応答をテストしたいのですが、私はそれを行うことができませんでした。私はresponseTextが未定義の型であることを知りましたので、型キャストを試みました:

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

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

0
追加された
ビュー: 1
応答が OK の間に else ブロックが実行されていることを意味しますか?応答にスペースがありますか?
追加された 著者 pimvdb,
レスポンスの文字列の長さをチェックしてみてください。恐らく2の長さではありません。
追加された 著者 Repox,
空白を整えようとしましたか?
追加された 著者 Matt,

2 答え

ここで実際に見ている以上に文字列がない場合は、文字列に空白やその他の印刷できない文字が含まれている必要があります。比較を行う前にトリミングしてみてください。

Edit Also try putting console logging in both your 'if' and 'else' blocks - maybe your method is being called multiple times unexpectedly and there is an odd race condition.

1
追加された
(xmlhttp.readyState == 4 && xmlhttp.status == 200){var trimmed = String(xmlhttp.responseText).replace(これはドキュメント要素に置換されているようです)/^ \ s + | \ s + $/g、 ''); if(trimmed == "OK"){//何か} else {document.getElementById(spanID).innerHTML = trimmed; }}奇数?
追加された 著者 user1043568,

以下を試してください:

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

if (text=="OK"){
   //do something
}else{
   //display the responseText
    document.getElementById(spanID).innerHTML=xmlhttp.responseText;
}
0
追加された
PHP - 日本のコミュニティ [ja]
PHP - 日本のコミュニティ [ja]
4 参加者の

招待状へのリンク: https://t.me/joinchat/B2gdSlA_dh1-BQtEKA2dfw このグループではPHPについて話します。 パートナー:kotaeta.com