ajaxリクエスト送信時のif else文の問題を解決するには?次に、ajaxで作られたエラー処理方法をこの記事で紹介しますので、ajaxのエラーに興味のある方はぜひ一緒に見てください
1. ajaxの場合のif else文の問題。リクエストを送信します。
var xhr = new XMLHttpRequest(); xhr.open("get",strUrl);<br> <br>xhr.onreadystatechange = function(){ <br><br> if(xhr.readyState === 4){ <br><br><em id="__mceDel"> if(xhr.status ===200){ console.log(xhr.responseText); } <br><br></em><em style="line-height: 1.5;" id="__mceDel"> <em id="__mceDel"><em id="__mceDel"><em id="__mceDel"> }else </em></em></em></em><em style="line-height: 1.5;" id="__mceDel"><em id="__mceDel"><em id="__mceDel"> <em id="__mceDel"><em id="__mceDel">{<br> console.log(xhr.status); } <br> }</em></em></em></em></em>
xhr.send();
その際、200のステータスコードが2つ出力され、その後に取得した内容であるxhr.responseTextが出力されました。 当時、この200がどこから来たのか不思議でした。
その時は色々なコンテンツをアウトプットしてみたのですが、それでも原因が分かりませんでした。 このとき、else文をconsole.log(xhr.readystate)に変更して、出力チェックが2、3となり、取得内容が取得できた時点で問題が判明しました。 そのとき初めて理由が分かりました:
xhr がリクエストを送信してからリクエストが終了するまで、ステータスコードは 0、1、2、3、4 (の値です) の 5 つの状態を経ます。 readystate) 状態が変化するたびに、readystatechange イベントがトリガーされ、イベント処理関数が呼び出されます。 ステータス コードが 2 に変化すると、readystatechange イベントが呼び出され、if/else ステートメントが使用されます。これは明らかに 4 ではなく、readystate であり、else ステートメントを使用して 2 を出力します。同様に、readystatechange が呼び出されます。イベントの場合、コンテンツが 4 の場合のみ、if のコンテンツが取得され、リクエストが成功した場合はリクエストのコンテンツが返されます。
以上、編集者が紹介したAjaxエラーの対処方法でしたので、皆様のお役に立てれば幸いです! !
関連する推奨事項:
jQuery での Ajax エラーのデバッグ分析
以上がAjaxエラー処理メソッドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。