0

AJAX を使用した CGI プログラムにリクエストを送信しています。応答で content-length が送信されます。私の目的は、応答の進行状況を動的に示すことです。そのためには、XHR オブジェクトの onreadystate 値が 3 になるように関数を開始する必要があります。しかし、リクエストはそのステータス番号を取得していないようです。代わりに、状態 1 から状態 4 に直接移行します。

4

2 に答える 2

0

ローカルホストで実行している場合、おそらくブラウザは、リクエストを送信してからレスポンスを受け取るまでの間に実行する機会を得ていません...

  1. ブラウザが接続を開き、readyState を 1 に設定します
  2. ブラウザはサーバープロセスにパケットを送信します
  3. サーバー プロセスがパケットを受信し、スケジューラから優先度を取得します
  4. サーバーはブラウザにデータを返し、CPU の制御を譲ります。ブラウザは実行を継続します。
  5. ブラウザはすべてのデータが受信されたことを認識し、readyState を 4 に設定します。

簡単に言えば、「受信」状態になることを期待しないでください。

于 2009-01-03T19:24:02.933 に答える
0

応答が非常に速く進行しているため、状態 3 で気付かないことがあります。特に、localhost で実行している場合は、応答が非常に速く送信される可能性があります。ステージ 3 に到達したときにアラートを設定して、実際に到達しているかどうかをテストできます。また、Internet Explorer は、ステージ 3 で応答にアクセスするのは間違いであり、互換性の問題がある可能性があると言っていると思います。

于 2009-01-02T15:00:43.057 に答える