xmlhttprequest を使用して、Google Chrom 拡張機能からリモート サーバーにリクエストを送信しています。
リモートホストにアクセスするためにmanifest.jsonにアクセス許可を設定しました
基本的には期待どおりに機能しています。私が期待していたのは、応答が完了すると実行される readystate 4 です。
サーバー側では 8 ~ 10 秒のプロセスであるため、サーバー側からクライアントへのエコーを使用してステータスを更新します。
だから私はサーバーの応答を表示するために readyState==3 条件を使用します
しかし、readystate 1 と 4 をテストしたとき、2 と 3 ではなく、イベント ハンドラーを起動しています。
ここに私が使用するコードがあります
var wini = window.open('','');
var sta='';
var jax = new XMLHttpRequest();
jax.onreadystatechange = function() {
sta = sta + jax.readyState + ', '
wini.document.write(sta+'<br>');
}
jax.open("POST","http://sitename.com/subscript/?save=save&tstamp="+Math.random());
jax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
//jax.setRequestHeader("Connection: close");
jax.send("somedata=" + encodeURIComponent(window.somedata));
接続クローズを使用します。別の結果。readystate 1 を除いて、他は起動されていません
そのため、readystates 1 と 4 は正常に機能していますが、2 と 3 は機能していません。最も必要なのは 3 です。
コードの実行で実際に何が起こるかは次のとおりです。
1、ポップアップ ウィンドウに出力されてから 8 ~ 9 秒経過し、準備完了状態が 4 の場合
1,2
1,2,3
1,2,3,4
上記の 3 行が 1 ショットで印刷されます。したがって、readystate 4 によってのみ、readystate が 3 の間ではなく、サーバーからすべての応答を取得していると仮定します。
同じ起源の他のWebアプリケーションでreadystate 3を使用しましたが、それは機能し、現在も機能しています。
この xhr では、何が欠けているのかわかりません。
ここでreadystate 3を利用する方法は?