DOBON.NET DOBON.NETプログラミング掲示板過去ログ

MSXML4.XMLHTTPでの送受信について

環境/言語:[ASP XP IIS6.0]
分類:[その他]

お世話になります。いろいろ調べたのですが、分からず投稿させて頂きます。
何かヒントになる情報でもよいので、書き込みのほど、よろしくお願い致します。
(お手上げ状態です。Help〜!!!)

環境 IIS6.0
Win XP サーバー・クライアントとも
言語 ASP(VBScript) サーバー
   javascript クライアント
処理の流れ
   クライアントで操作した内容をDocumentオブジェクトへ格納し、サーバーへ送信→サーバーにてDocumentオブジェクトの内容に基づき処理します。

1. sendメソッドの箇所でエラーが発生してしまいます。
・エラーメッセージ:エラー: 指定されたリソースのダウンロードは失敗しました。
・send(null)にすると問題なし。
・Documentオブジェクトの中身をShift-Jis 日本語混じりです。

2. javascriptで、文字列の容量を調べる方法はありますか?
(容量が大きいため、エラーが発生しているのではないかと考えているのですが、容量自体の測定方法が分からないため質問させて頂きました。)

3. 送信したDocumentオブジェクトの内容をサーバー側で処理をしたいのですが、どういった記述でDocumentオブジェクトを取得するのでしょうか?いろいろ調べたのですが、具体的なソースがわからなっかたため、質問させて頂きました。

以下は、大まかなソースコードです。

myDoc = new ActiveXObject("MSXML2.DOMDocument.4.0");

//myDocに対し、ノードを追加したり、削除したりして、文字数では15,000文字程度。
httpoj = ActiveXObject("MSXML4.XMLHTTP")
httpoj.open("post", "./Process.asp" , "false");
httpoj.onreadystatechange = function(){

}

httpoj.setRequestHeader("Content-Type", "application/xml");
httpoj.send(myDoc);
> 1. sendメソッドの箇所でエラーが発生してしまいます。
> ・エラーメッセージ:エラー: 指定されたリソースのダウンロードは失敗しました。
> ・send(null)にすると問題なし。
> ・Documentオブジェクトの中身をShift-Jis 日本語混じりです。

  http://q.hatena.ne.jp/1157472893

  この内容は参考になりませんか?
  sendされたものをサーバー側で実際に受け取れているのか
  どうか・・・

> 2. javascriptで、文字列の容量を調べる方法はありますか?
> (容量が大きいため、エラーが発生しているのではないかと考えているのですが、容量自体の測定方法が分からないため質問させて頂きました。)
>
> 3. 送信したDocumentオブジェクトの内容をサーバー側で処理をしたいのですが、どういった記述でDocumentオブジェクトを取得するのでしょうか?いろいろ調べたのですが、具体的なソースがわからなっかたため、質問させて頂きました。

  こちらは全く使ったことありませんので、解りません・・・
  あしからず。

以上。
自己レスです。

>1. sendメソッドの箇所でエラーが発生してしまいます。
>・エラーメッセージ:エラー: 指定されたリソースのダウンロードは失敗しました。
>・send(null)にすると問題なし。
>・Documentオブジェクトの中身をShift-Jis 日本語混じりです。
とりあえず、解決しました。
まず、1目の問題点は、半角カタカナでした。
Documentへ追加する場合や、XMLHTTPに乗せる場合は、エラーにならないのですが、送信処理にてエラーになります。解決方法は、ADODB.Streamを使用し、バイナリに変換→送信→バイナリからShift-jisへ変換することにより、送信可能になりました。
2つ目の問題点は、送信量が多いと送信エラーになります。HTTPエラーコード12030が返ってきます。これは、確信がもてないのですが、データの送信量がある基準付近で失敗する確率が高まります。送信量80K付近です。確信がもてない理由は、何Kバイト超えるとエラーとならないことと、受信サーバー側のアップロード最大量規定値と一致しないためです。しかし、アップロード最大量を再設定したら、エラーがでなくなりました。


>2. javascriptで、文字列の容量を調べる方法はありますか?
>(容量が大きいため、エラーが発生しているのではないかと考えているのですが、容量自体の測定方法が分からないため質問させて頂きました。)
ADODB.StreamのSizeプロパティにて確認可能です。


>3. 送信したDocumentオブジェクトの内容をサーバー側で処理をしたいのですが、どういった記述でDocumentオブジェクトを取得するのでしょうか?いろいろ調べたのですが、具体的なソースがわからなっかたため、質問させて頂きました。
バイナリ受信をDocumentオブジェクト?変数?(インスタンス化していない)へ設定したのですが、上手くいきませんでした。
これは、見解決ですが、ご連絡まで。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板