AJAXとは何ですか
すべての近代的なブラウザは、XMLHttpRequestのオブジェクト(IE5やIE6の使用ActiveXObjectの)をサポートしています。
バックグラウンドでサーバーとデータを交換するためのXMLHttpRequest。この手段は、ことのページの特定の部分のために、ページ全体をリロードせずに更新します。
簡単な例:
機能要求(){ VAR HTTP = 新しい新規のXMLHttpRequest() // オブジェクトを作成するAJAX http.open( "GET"、 "test1.txtという"、真の); // 同期または非同期モード要求アドレスを要求(リクエストの所定のタイプ) HTTP .setRequestHeader( "コンテンツタイプ"、 "ファイルアプリケーション/ x-www-form-urlencodedで"); // ヘッダ要求 http.sendは() // (サーバへのリクエスト送信) ajax.onreadystatechange = 関数(){ // 要求応答 IF(ajax.readyState == == 200 4 ajax.status &&である。){ にconsole.log(JSON.parse(ajax.responseText)); } } } リクエスト() // コール
XMLHttpRequestオブジェクト
すべての最新ブラウザ(IE7 +、Firefoxの、クロム、SafariやOperaは)ビルトインされているのXMLHttpRequestオブジェクト(IE5やIE6の使用ActiveXObjectの)
VARのhttp = 新しい XMLHttpRequestを()
これは、3つのパラメータを受け取ります。
1.method:このようGET、POSTなどの要求タイプ、。
2.url:要求アドレス。
3.async:現在の要求の規定は、デフォルトでは(記入しない)非同期で、非同期です。(真の非同期、偽同期)
http.open( "GET"、 "https://api.apiopen.top/recommendPoetry");
次に、我々はsetRequestHeader法により要求ヘッダーを設定します。注:この方法は、open()メソッドが実行された後に設定しなければなりません。(されていることを、あなたは最初のopen()メソッドを呼び出す必要があります)。コードは以下の通りであります:
http.setRequestHeader( "コンテンツタイプ"、 "アプリケーション/ x-www-form-urlencodedで")。
sendメソッド
この方法は、サーバへの送信要求を示しています。
要求タイプは、投稿する場合は、send()メソッドにはパラメータが1つ、あなたが背景に合格するために必要なパラメータを受け付けます。リクエストがnullを埋めるか埋めることはできません取得
http.send()
readyStateのプロパティ
readyStateのは、XMLHttpRequestのオブジェクトのプロパティは、それが当社のサーバーステータス情報への応答を意味しています。readyStateのプロパティの5つの値の合計:
- 0:要求が初期化されていません(プロキシが作成されますが、まだ(オープン呼び出しです)メソッド)
- 1:サーバー接続が確立される(
open
メソッドが呼び出されました) - 2:要求(受信された
send
メソッドが呼び出されており、状態及びヘッドがすでに利用可能です) - 3:要求を処理する(ダウンロードには、
responseText
プロパティは、すでに一部のデータが含まれています) - 4:(ダウンロード操作が完了した)要求が完了した、と応答が準備ができています
onreadystatechangeにする方法
たびのreadyStateプロパティが変更我々がこの方法サーバーへの対応を取りに行くことができますので、それは、onreadystatechangeに()メソッドがトリガーされます。
readyStateの値が4に等しい、と示している場合、要求が完了し、サーバは、私たちに結果を返しました。
=関数http.onreadystatechange(){ //は4に等しく、readyStateの状態が200に等しい(成功したリクエストを示す) IF(4 && ajax.status ajax.readyState == == 200){ にconsole.log(ajax.responseText); //サーバ応答の結果 } }
responseTextとresponseXMLをプロパティ
responseText:応答データ列が得られます。
responseXML:XMLとして応答データを取得します。
私たちは、上記の使用responseTextプロパティですが、一般的にそのJSON形式のデータを必要とし、我々はJSONオブジェクトにその文字列ようJSON.parse()を使用することができます。コードは以下の通りであります:
=関数http.onreadystatechange(){ //は4に等しく、readyStateの状態が200に等しい(成功したリクエストを示す) IF(4 && ajax.status ajax.readyState == == 200){ にconsole.log(JSON.parse(ajax.responseText )); //サーバ応答結果 } }