今回は、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 はリクエストの送信からリクエストの終了まで 5 つの状態を経ます。ステータス コードは 0、1、2、3、4 (readystate の値) です。状態が変化すると、readystatechange イベントがトリガーされ、 イベント処理 関数が呼び出されます。 ステータス コードが 2 に変化すると、readystatechange イベントが呼び出され、if/else ステートメントが使用されます。これは明らかに 4 ではなく、else ステートメントを使用して 2 を出力します。同様に、3 または 4 の場合も同様です。 if 内のコンテンツが 4 の場合にのみ、readystatechange イベントが再度呼び出され、リクエストは成功し、リクエストのコンテンツが返されます。
この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。
推奨読書:
ajaxを使用してフォームを送信し、ファイルアップロードを実装する方法Ajaxがjson形式のデータをバックグラウンドに送信するときにエラーに対処する方法以上がAjax を使用するときによくある間違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。