MSXML は、データ パケットから Request オブジェクトへの変換および送信タスクを完了できる Microsoft.XMLHTTP オブジェクトを提供します。
XMLHTTP オブジェクトを作成するステートメントは次のとおりです。
Set objXML = CreateObject("Msxml2.XMLHTTP") または
objXML = CreateObject("Microsoft.XMLHTTP") を設定します。
' または、XMLHTTP バージョン 3.0 の場合は、次を使用します。
' Set xml = Server.CreateObject("MSXML2.ServerXMLHTTP")
オブジェクトが作成されたら、Open メソッドを呼び出して Request オブジェクトを初期化します。構文形式は、
poster.open http-method、url、async、userID、password です。
Open メソッドには 5 つのパラメータが含まれており、最初の 3 つは必須で、最後の 2 つはオプションです (サーバーが認証を必要とする場合に提供されます)。パラメータの意味は次のとおりです。
http-method: GET または POST などの HTTP 通信メソッド。
url: XML データを受信するサーバーの URL アドレス。通常、ASP または CGI プログラムの async は URL で指定されます
。リクエストが非同期かどうかを示すブール値のフラグです。非同期通信モード (true) の場合、クライアントはサーバーの応答を待ちません。同期モード (false) の場合、クライアントは他の操作を実行する前にサーバーがメッセージを返すまで待つ必要があります
。サーバー認証に使用される
パスワード
XMLHTTP オブジェクトの Send メソッドは
、Open メソッドを使用
して Request オブジェクトを初期化し、Send メソッドを呼び出して XML データを送信します
。
Send メソッドのパラメータ タイプは Variant で、文字列、DOM ツリー、または任意のデータ ストリームを指定できます。データを送信するには、同期と非同期の 2 つの方法があります。非同期モードでは、データ パケットが送信されると送信プロセスが終了し、クライアントは他の操作を実行します。同期モードでは、クライアントはサーバーが確認メッセージを返すまで待機してから送信プロセスを終了します。
XMLHTTP オブジェクトのreadyState 属性は、リクエストの処理におけるサーバーの進行状況を反映できます。クライアントプログラムは、このステータス情報に基づいて、対応するイベント処理方法を設定できます。属性値とその意味を次の表に示します。
値 説明
0 Response オブジェクトは作成されましたが、XML ドキュメントのアップロード プロセスはまだ終了していません。
1 XML ドキュメントがロードされました
2 XML ドキュメントがロードされ、処理中です。
3 XML ドキュメントの一部が解析されました
4 文書が解析され、クライアントは応答メッセージを受信できるように
応答情報を処理します。
これにより、基本的に C/S 間の対話サイクルが完了します。クライアントは、XMLHTTP オブジェクトの属性を通じて応答を受け取ります。
● responseTxt: 戻りメッセージをテキスト文字列として扱います。
●responseXML
: 戻りメッセージを XML ドキュメントとして扱います。サーバー応答メッセージに XML データが含まれている場合に使用されます。返されたメッセージ
は XML ドキュメントとして
扱われます。 返されたメッセージは Stream オブジェクトとして扱われます。-----これは次の非常に単純な JAVASCRIPT 関数 SEND(STR,URL) です--------------- --
XMLDOM および XMLHTTP オブジェクトが使用されます。このテクノロジを使用する利点は、完全な JS 制御、便利/シンプル、RDS やリモートよりもはるかに優れていることです (前提条件: サーバーとクライアントの両方に IE5 以降がインストールされている必要があります)。 -私が投稿したオンライン情報を更新する この機能もこの技術を使用しています。興味のある方はぜひご覧ください。
function Send(Str,URL)
//STR パラメータは渡される XML データです。他のテキスト データを渡すこともできます。
//ただし、この関数はサーバーによって処理され、XML データに返される必要があります。変更することもできます。
//URL パラメータは、処理するデータの ASP ファイル アドレスを表します
{
var Http = new ActiveXObject("Microsoft.XMLHTTP") //XMLHTTP オブジェクトを作成します var Dom = new ActiveXObject("Microsoft.XMLDOM") //XMLDOM オブジェクトを作成します Http.open("POST",URL,false)
//最初のパラメータは、「POST」メソッドを使用してデータを送信することを意味します。最大 4MB にすることもできますが、256KB までに変更することもできます。
//2 番目のパラメータは、データが処理のためにどのファイルに送信されるかを意味します。 //3 番目のパラメータは、同期モードまたは非同期モードを意味します。TRUE は非同期を意味し、FALSE は同期を意味します。 Http.send(Str) // データの送信を開始します。 .......ビープ..
Dom.async=false //データを同期的に取得するように設定 Dom.loadXML(Http.responseText)
//サーバー側の処理後に返されるデータの取得を開始します。ここで設定する設定は XML データである必要があります。そうでない場合はエラーが発生します。
//返されるデータがバイナリ データまたはレコードセット データになるように自分で変更することもできます。
if(Dom.parseError.errorCode != 0) //データ取得時にエラーが発生したかどうかを確認する{
削除(HTTP)
削除(Dom)
戻り値(偽)
}
それ以外
{
var Back = Dom.documentElement.childNodes.item(0).text
// 返された XML データを取得します。ここでは、ハンドラーが 1 行の XML データ (1 つのノード) のみを返すと仮定します。
削除(HTTP)
削除(Dom)
return(Back) //関数はデータを返します.....End}
}
VAR CAT = Send("<ユーザー情報><名前>謝蒙</Name></ユーザー情報>"," HTTP://WWW.CHINAASP.COM/VIVA.ASP ") //関数を実行
IF(CAT == FALSE)
{
ALERT("申し訳ありません。ハンドラーが FALSE を返しました。データ処理が失敗しました...")
}
それ以外
{
IF(EVAL(CAT))
{
ALERT("OK。データは正常に送信されました。処理は完了しました!!!!!!")
}
それ以外
{
ALERT("申し訳ありません。ハンドラーが FALSE を返しました。データ処理が失敗しました...")
}
===============================
VIVA.ASP=============== = =============
エラー時は次へ再開
ディムボボ
ディムモモ
SET BOBO = SERVER.CREATEOBJECT("MICROSOFT.XMLDOM")
BOBO.ASYNC = FALSE
BOBO.LOAD リクエスト
IF BOBO.PARSEERROR.ERRORCODE <> 0 THEN
RESPONSE.WRITE("<プログラム処理結果><最終結果>FALSE</最終結果></プログラム処理結果>")
それ以外
SET MOMO = BOBO.DOCUMENTELEMENT
IF MOMO.CHILDNODES.ITEM(0).TEXT = "謝蒙" THEN
RESPONSE.WRITE("<プログラム処理結果><最終結果>TRUE</最終結果></プログラム処理結果>")
それ以外
RESPONSE.WRITE("<プログラム処理結果><最終結果>FALSE</最終結果></プログラム処理結果>")
終了 IF
終了 IF
ボボ = 何も設定しない