ホームページ >ウェブフロントエンド >jsチュートリアル >非同期リクエストを送信するための ajax メソッドを実装する

非同期リクエストを送信するための ajax メソッドを実装する

php中世界最好的语言
php中世界最好的语言オリジナル
2018-04-16 13:45:561799ブラウズ

今回は、ajax を実装して非同期リクエストを送信するための request メソッドと、ajax を実装して非同期リクエストを送信するための 注意事項 について説明します。以下は実際的なケースです。見てみましょう。

ajaxが非同期リクエストを送信する具体的な内容は以下の通りです

ステップ 1(XMLHttpRequest を取得する)

Ajax は実際に学習する必要があるオブジェクトは 1 つだけです: XMLHttpRequest それをマスターすれば、ajax をマスターできます!!!

。 1. XMLHttpRequest を取得します

ほとんどのブラウザーは次をサポートしています:var xmlHttp=new XMLHttpRequest();
IE6.0:var xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
IE5.0 およびそれ以前のバージョンの IE:var xmlHttp=new ActiveXObject( "Microsoft.XMLHTTP ");

2. XMLHttpRequest オブジェクトを作成する関数を作成します

function createXMLHttpRequest(){
     try{
     return new XMLHttpRequest();
     } catch(e){
     try{
     return new ActiveXObject(“Msxml2.XMLHTTP”);
    }catch(e){
     try{
      return new ActiveXObject(“Microsoft.XMLHTTP”);
     }catch(e){
       alert(“哥们儿,你用的是什么浏览器啊?”);
       throw e;
    }
    }
     } 
}

ステップ 2(サーバーへの接続を開く)

xmlHttp.open(): サーバーとの接続を開くために使用され、3 つのパラメーターが必要です:

リクエストメソッド: GET または POST にすることができます
リクエストされた URL: サーバー側のリソースを指定します (例:/day23_1/AServlet
) リクエストが非同期かどうか: true の場合は、非同期リクエストを送信することを意味し、それ以外の場合は同期リクエストを送信します

xmlHttp.open("GET","/day23_1/AServlet",true);//たとえば

ステップ 3(リクエストを送信)

xmlHttp.send(null): 指定しない場合、一部のブラウザでは送信できない可能性があります

パラメータ: リクエストボディの内容です。GET リクエストの場合は、null を指定する必要があります。
POSTリクエストの場合は以下の通り

xmlHttp.send(“ユーザー名=zhangSan&パスワード=123”);

ステップ 4:

xmlHttp オブジェクトのイベントにリスナーを登録します: onreadystatechange

xmlHttp オブジェクトには合計 5 つの状態があります

0: 初期化が完了しておらず、XMLHttpRequest オブジェクトが作成されたばかりで、open() メソッドがまだ呼び出されていません。 1: リクエストは開始されており、open() メソッドは呼び出されていますが、send() メソッドは呼び出されています。 2: リクエストは完了状態で送信され、send() メソッドが呼び出されています

3: サーバー応答の読み取りを開始します
4: サーバー応答の読み取りを終了します (通常は最後のステータスのみを考慮します。 !)

xmlHttpオブジェクトのステータスを取得します

var state = xmlHttp.readyState;//可能是0、1、2、3、4
サーバー応答の

ステータス コード

を取得します (200: 成功、304: ステータスは変更されていません、404 500: サーバー エラー)

var status=xmlHttp.status;//例如200、404、500
サーバー応答の内容を取得します
var content=xmlHttp.responseText;//得到服务器的响应的文本格式的内容(这更通用)
var content=xmlHttp.responseXML;//得到服务器的响应的xml响应的内容,它是document对象了!
したがって、リスナーは次のように記述する必要があります

xmlHttp.onreadystatechange = function(){
  //xmlHttp的5种状态都会调用本方法
    if(xmlHttp.readyState ==4 && xmlHttp.status == 200){
  //双重判断:判断是否为4状态,而且还要判断是否为200
      var text=xmlHttp.responseText;
     } 
};
この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、PHP 中国語 Web サイトの他の関連記事に注目してください。

推奨読書:

vue-cli+sassの使い方の詳しい説明


Dateオブジェクトを使ったカウントダウン関数の作成方法

以上が非同期リクエストを送信するための ajax メソッドを実装するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。