2016-06-26 14 views
0

存在しないデータベース要素へのAJAX呼び出しを行います。そして、ハンドラは次のようになります。XMLHttpRequest.responseは実際にはnullではありません。

if (xhr.readyState === 4 && xhr.status === 200 && xhr.response !== null) { 
    console.log('response type is ' + typeof xhr.response); // string 
    console.log('response is ' + xhr.response);    // null 
    // rest of the handler// 
{ 

応答がnullでない場合、私はそれを行うと述べられている場合の質問は、なぜ私のハンドラは、(それは常にコンソールと文字列とヌルをログに記録するようになる)ブロックを実行されています?

+2

本当に '応答の種類は文字列'で、 '応答はヌル'であれば、明らかに応答は文字列 ''ヌル ''です。 –

+0

暗闇の中で 'console.log'トーチでつまずくのではなく、あなたのブラウザに組み込まれた強力なデバッガを使ってライトをオンにすることをお勧めします。そのブロック内にブレークポイントを設定し、ブレークポイントでコードが一時停止している間に 'xhr.response'の値を調べます。 –

+1

また、開発者ツールの[ネットワーク]タブを見て、HTTP応答の生データを調べます。 – Quentin

答えて

2

まあ、それは本当に

 
response type is string 
response is null 

をログに記録するかどう...その後明らかに応答が文字列"null"です。

+0

上記のコメントを含め、フィードバックをいただき、ありがとうございます。それは私のJSの開始を容易にします。十分な評判を持って、答えに投票するだろう。 – Ito

+0

@Ito:喜んで助けました。 *回答*した場合は、その横にあるチェックマークをクリックして回答を「受け入れる」必要があります。 [more here](/ help/someone-answers)。あなたは評判にかかわらず、あなたが聞いた質問に対する回答を受け入れることができます。あなたのJavaScriptを楽しんでください! –

関連する問題