XMLHTTP オブジェクトとそのメソッド————————————————————————
MSXML は、データ パケットから Request オブジェクトへの変換および送信タスクを完了できる Microsoft.XMLHTTP オブジェクトを提供します。
XMLHTTP オブジェクトを作成するステートメントは次のとおりです。
objXML = CreateObject("Msxml2.XMLHTTP") を設定するか、
objXML = CreateObject("Microsoft.XMLHTTP") を設定します。
' または、XMLHTTP バージョン 3.0 の場合は、次を使用します。
' xml = Server.CreateObject("MSXML2.ServerXMLHTTP") を設定します
オブジェクトが作成されたら、Open メソッドを呼び出して Request オブジェクトを初期化します。構文形式は次のとおりです。
poster.open httpメソッド、URL、非同期、ユーザーID、パスワード
Open メソッドには 5 つのパラメータが含まれており、最初の 3 つは必須で、最後の 2 つはオプションです (サーバーが認証を必要とする場合に提供されます)。パラメータの意味は次のとおりです。
http-method: GET や POST などの HTTP 通信メソッド
url: XML データを受信するサーバーの URL アドレス。通常、ASP または CGI プログラムは URL で指定されます。
async: リクエストが非同期かどうかを示すブール値のフラグ。非同期通信モード (true) の場合、クライアントはサーバーの応答を待ちません。同期モード (false) の場合、クライアントは他の操作を実行する前にサーバーがメッセージを返すまで待つ必要があります。
userID サーバー認証に使用するユーザーID
パスワード ユーザーのパスワード。サーバー認証に使用されます。
XMLHTTP オブジェクトの Send メソッドが Open メソッドを使用して Request オブジェクトを初期化した後、Send メソッドを呼び出して XML データを送信します。
ポスター.XML データを送信する
Send メソッドのパラメータ タイプは Variant で、文字列、DOM ツリー、または任意のデータ ストリームを指定できます。データを送信するには、同期と非同期の 2 つの方法があります。非同期モードでは、データ パケットが送信されると送信プロセスが終了し、クライアントは他の操作を実行します。同期モードでは、クライアントはサーバーが確認メッセージを返すまで待機してから送信プロセスを終了します。
XMLHTTP オブジェクトのreadyState 属性は、リクエストの処理におけるサーバーの進行状況を反映できます。クライアントプログラムは、このステータス情報に基づいて、対応するイベント処理方法を設定できます。属性値とその意味を次の表に示します。
値の説明
0 Response オブジェクトは作成されましたが、XML ドキュメントのアップロード プロセスはまだ終了していません。
1 XML ドキュメントがロードされました
2 XML ドキュメントがロードされ、処理中です。
3 XML ドキュメントの一部が解析されました
4 文書が解析され、クライアントは応答メッセージを受信できるようになり、応答情報を処理します。これにより、基本的に C/S 間の対話サイクルが完了します。クライアントは、XMLHTTP オブジェクトのプロパティを通じて応答を受け取ります。
● responseTxt: メッセージをテキスト文字列として返します。
● responseXML: 返されたメッセージを XML ドキュメントとして扱います。これは、サーバー応答メッセージに XML データが含まれている場合に使用されます。
● responseStream: 返されたメッセージを Stream オブジェクトとして扱います。
次の XML ファイルは動的に生成され、最終的に xmlHTTP を使用して送信されます。これはクライアント JavaScript スクリプトの内容です。もちろん、サーバー上に記述することもできますが、それに応じていくつかの点を変更する必要があります。 、使用法を理解してください)
var xmlDoc=new ActiveXObject("MSXML2.DOMDocument");
flag=xmlDoc.loadXML("");
newNode =xmlDoc.createElement("エンコーディング")
MarkNode=xmlDoc.documentElement.appendChild(newNode);
newNode =xmlDoc.createElement("StartMark")
newNode.text=StartMark;
MarkNode.appendChild(newNode)
newNode =xmlDoc.createElement("EndMark")
newNode.text=EndMark;
MarkNode.appendChild(newNode)
newNode =xmlDoc.createElement("日付")
DateNode=xmlDoc.documentElement.appendChild(newNode);
newNode =xmlDoc.createElement("開始日");
newNode.text=開始日;
DateNode.appendChild(newNode)
newNode =xmlDoc.createElement("EndDate")
newNode.text=終了日;
DateNode.appendChild(newNode);
newNode =xmlDoc.createElement("数量")
SLNode =xmlDoc.documentElement.appendChild(newNode);
newNode =xmlDoc.createElement("StartSL")
newNode.text=StartShuL
SLNode.appendChild(newNode)
newNode =xmlDoc.createElement("EndSL");
newNode.text=EndShuL
SLNode.appendChild(newNode);
newNode =xmlDoc.createElement("単価")
DJNode =xmlDoc.documentElement.appendChild(newNode)
newNode =xmlDoc.createElement("StartDJ")
newNode.text=StartDanJ;
DJNode.appendChild(newNode);
newNode =xmlDoc.createElement("EndDJ")
newNode.text=EndDanJ;
DJNode.appendChild(newNode);
newNode =xmlDoc.createElement("金額")
JENode =xmlDoc.documentElement.appendChild(newNode)
newNode =xmlDoc.createElement("StartJE")
newNode.text=StartJinE
JENode.appendChild(newNode)
newNode =xmlDoc.createElement("EndJE")
newNode.text=EndJinE
JENode.appendChild(newNode)
newNode =xmlDoc.createElement("ウェアハウス コード")
newNode.text=CK;
xmlDoc.documentElement.appendChild(newNode)
newNode =xmlDoc.createElement("チケット番号")
newNode.text=RKPH;
xmlDoc.documentElement.appendChild(newNode)
newNode =xmlDoc.createElement("ユニットコード")
newNode.text=企業名;
xmlDoc.documentElement.appendChild(newNode)
newNode =xmlDoc.createElement("BiaoShi")
newNode.text=ビアオシ
xmlDoc.documentElement.appendChild(newNode)
newNode =xmlDoc.createElement("FindCate")
newNode.text=FindCate
xmlDoc.documentElement.appendChild(newNode)
var xh =new ActiveXObject("MSXML2.XMLHTTP")
xh.open("POST","Find.asp",false)
xh.setRequestHeader("コンテンツタイプ","テキスト/xml")
xh.setRequestHeader("コンテンツタイプ","gb2312")
xh.send(xmlDoc);
各 newNode のテキスト値は変数であり、クライアント フォームに入力された値です。