AJAXと比較して、サーバーXMLHTTPはサーバー上のXMLHTTPREQUESTオブジェクトを使用することです。サーバー側で非同期リクエストを使用することは不便ですが、HTTP要求をサーバーとして送信できるコンポーネントとして、調査に害はありません。
ここでは、ASP環境でサーバーXMLHTTPREQUESTを使用することについて話しています。
サーバーXMLHTTPは通常、リモートホストのWebページまたはその他のコンテンツを取得するために使用されます。通常、Server XMLHTTPオブジェクトを使用して集計フィードのコンテンツを取得し、XMLDOMオブジェクトを使用してフィードのコンテンツを分析します。そして、ニュースのタイトルを取り出します。著者、コンテンツ、その他の情報は、データベースに存在し、いくつかのデータソースのニュースを表示します。エビをキャプチャすることはそのようなニュースの集計ですが、それはASPで書かれていません:)
ASPでは、次のコードを使用してserverxmlhttpオブジェクトを作成できます。このオブジェクトは、サーバーでの操作の基礎となります。
var xmlhttp = new ActiveXObject(msxml2.serverxmlhttp.5.0);
まず第一に、serverxmlhttpオブジェクトのより有用な方法を理解するために:
1.このメソッドを中止して、xmlhttpのリクエストをキャンセルするために使用されます。 XMLHTTPオブジェクトがリクエストを非同期送信した場合、リクエストが特定の時間に戻らない場合、このメソッドを使用してリクエストをキャンセルできます。
2。getAllResponseHeadersの返品値は文字列であり、HTTPリクエストのヘッドに相当し、リクエストメソッド、URI、およびプロトコルバージョン情報を削除しました。
3。getResponseHeaderこのメソッドは、指定されたヘッド情報を取得するために使用されます。
4. Openは、指定された要求方法、URIおよび同期方法、および認証情報を使用して、リクエストを初期化します。
5. HTTPリクエストを送信すると、リクエストが同期して送信された場合、リクエストがすぐに返された後に返されます。さらに、SENDメソッドにはオプションのパラメーター本体があり、送信されるデータがPOSTメソッドを使用する場合により便利であることを示します。
6. settimeout serverxmlhttpオブジェクトの4out時間を設定します。つまり、ドメイン名分析、接続サーバー、データの送信、受信応答。 serverxmlhttpが時間内に戻るのを防ぎ、プログラムが応答を停止するのを防ぐために、対応するタイムアウト時間を設定することにより、serverxmlhttpオブジェクトを制御できます。
7。setRequestheaderは、クライアントxmlhttprequest、通常、リクエストを設定するために使用されるデータ型、またはjqueryがヘッド識別子x-request-withを増やすために使用されるデータ型を設定します。 、リクエストがxmlhttprequestオブジェクトからのものであることを示します。
8。Waitforresponseこの方法を使用して、リクエストを非同期送信するときに要求プロセスを制御できます。サーバースクリプトでは、クライアントのような非同期リクエストを制御するためにコールバック関数を直接使用してはなりません。したがって、リクエストが戻るのを待つためにプログラムを使用するための対応する関数はありません。この方法を使用して、一定の時間をかけて一定の時間をかけることができます
さらに、getoption、setoption、setproxyなどの他の方法があります。これらの方法は、MSDNをチェックできることを知っている必要がないため、使用することが少なくなります。
次に、serverxmlhttpオブジェクトの属性をご覧ください。
1. onreadystateChange XMLHTTPオブジェクトは、この属性が非同期操作の基盤を表し、XMLHTTPオブジェクトのステータスをクエリせずにXMLHTTP操作が完了したかどうかを知ることができます。
2。readystate xmlhttpオブジェクトステータス、5つの値、0から4のステータス、つまり以下は次のとおりです。
0-初期化ではなく、作成する際に新しいactivexobject(msxml.serverxmlhttp.5.0)を使用するだけです
1-負荷の存在、現時点では、オープンメソッドが呼び出されましたが、データはデータを送信するために使用されていません
2-ロードされており、送信方法がデータを送信するために呼び出されましたが、利用可能な応答フローはありません
3-私は相互作用していて、現時点でデータを受け取っています。
4-リクエストを完了すると、すべてのデータが完了するように受け入れられました
通常の状況では、ステータス4のみを判断する必要があります。現時点では、データはすべてロードボディまたはレスポンステキストプロパティを使用しています。
3.ステータスHTTP応答ステータスコードは200である必要があります。要求されたリソースが存在しない場合、404、およびサーバーエラー500などのその他のステータスコードを返します。
4。statustext http応答ステータステキスト応答ステータスコードの意味を記述するためのテキスト200 in 200 ok、404が見つかりません
5。応答ボディは、VBScriptで直接使用できるバイト配列のデータに応答しますが、JScriptで変換する必要があります。
6。responseTextテキストごとに応答データを取得します
7。ResponseXMLは、XMLDOMオブジェクトとして応答データを返します。
8。レスポンシスストリーム応答フローオブジェクト、この属性は一般的に使用されていません