jQueryのAjaxの方法が用意されています。
1 commonAjax:関数(actionNameの、メッセージ){ 2 VaRの結果。 3 $アヤックス({ 4 非同期:偽、 5 種類: "POST" 、 6 URL:actionNameの、 7 データ型: "JSON" 、 8 タイムアウト:5000、// 设置请求超时时间(毫秒)。 9 のcontentType:「アプリケーション/ x-www-form-urlencodedで;のcharset = UTF-8" 、 10 データ:{ 11 メッセージ:メッセージ 12 }、 13の 成功:関数(データ){ 14の // 成功(データ)。 15 結果= データ。 16 }、 17 エラー:関数(jqXHR、textStatus、errorThrown){ 18 場合(textStatusは"タイムアウト" == ){ 19 = "タイムアウト"結果。 20 } 21 } 22 }); 23 リターン結果; 24 }
ネイティブJSはAjaxのメソッドを実装します。
VARアヤックス= { GET:機能(URL、Fnが){ // XMLHttpRequestオブジェクトは、バックグラウンドでサーバーとデータを交換するために使用された のvar XHR = 新新のXMLHttpRequest(); xhr.open( 'GET'、URL、真の); xhr.onreadystatechange = 関数(){ // のreadyState ==は、要求が完了した説明。4 IF(xhr.readyState。4 && xhr.status == == == 200 || xhr.status 304である){ // サーバからデータを取得 fn.call(この、xhr.responseText); } }; xhr.send(); } // およびデータT.あるべき「= A1&B = B1 」 、この文字列の形式を自動的JQのデータオブジェクトの文字列形式にこのオブジェクト場合 POST:関数(URL、データ、FN){ VARの XHR = 新しい新規のXMLHttpRequest(); xhr.open( "POST"、URL、真の); // サーバコンテンツの符号化タイプに情報を送信し、HTTPヘッダーを追加 xhr.setRequestHeader( "コンテンツタイプ"、 「アプリケーション/ X-WWW-形「-urlencoded ); xhr.onreadystatechange = 関数(){ IF(xhr.readyState == 4 &&(|| xhr.status 200 xhr.statusある== == 304 )){ fn.call(この、xhr.responseText) ; } }。 xhr.send(データ)。 } }
コメント:
1. オープン(方法、URL、非同期)メソッドは、3つのパラメータを取ります。
方法:方法(GETまたはPOST)要求を送信するために使用されます。
POSTと比較して、簡単かつ迅速に取得し、ほとんどのケースで使用することができます。
ただし、次の場合には、POSTリクエストを使用してください:
- キャッシュファイルを使用します(ファイルをやサーバ上のデータベースを更新)することはできません
- サーバーへ(POSTデータの量を制限していない)、大量のデータを送信します
- ユーザー入力を送信することは未知の文字が含まれている場合、POSTは、より安定してGETよりも信頼性が高いです
URL:URL指定されたサーバーサイドスクリプトは、(ファイルは、ファイルの任意のタイプとすることができるようになの.aspや.phpのよう.TXTおよび.xml、またはサーバーのスクリプトファイル、など(リターン応答する前に、サーバー上でタスクを実行することができ) );
非同期:規定は、非同期リクエスト(真)(偽)または同期処理すべきである。応答が処理の準備ができている場合、他のサーバからの応答を待っている間に、真のスクリプトが実行される応答、偽して、サーバーを待っに実行されます。
2. send()メソッドの要求がサーバーに送信されます。
3. onreadystatechangeには:readyStateの変更は、onreadystatechangeに機能が実行されるたびに処理サーバの応答が機能します。
4. readyStateの:そこにサーバーの応答ステータス情報。
- 0:要求は(プロキシが作成されますが、まだopen()メソッドを呼び出して)初期化されていません
- 1:サーバー接続が(確立された
open
メソッドが呼び出されました) - 2:要求(受信された
send
メソッドが呼び出されており、状態及びヘッドがすでに利用可能です) - 3:プロセスの要求は(ダウンロードには、
responseText
プロパティは、すでに一部のデータが含まれています) - 4:(ダウンロード操作が完了した)要求が完了した、と応答が準備ができています
5. responseText:応答データ列が得られます。
6. setRequestHeader():POSTは、HTTPヘッダーを追加するために、データを送信し、その後(データ)を送信し、そのデータ形式に注意し、場合GET、このようなURL A = A1&B = B1 URLは、パラメータ情報に直接適用を送信することができます?。
PS:ポリフィル基本原理を取得するには、その後、XHRの実装を使用しない場合は、window.fetch方法が存在するかどうかを検出することです。