Ajaxリクエストが状態1から4に直接送られるのはなぜですか?
質問
AJAXを使用してCGIプログラムにリクエストを送信しています。応答はコンテンツ長を送信します。私の目的は、応答の進行状況を動的に示すことです。そのためには、XHRオブジェクトのonreadystate値が3になるように関数を開始する必要があります。しかし、リクエストはそのステータス番号を取得していないようです。代わりに、状態1から状態4に直接移行します。 何が足りないのですか?
解決
応答が非常に速くなるため、状態3で気付かない場合があります。特に、localhostで実行している場合、応答は非常に迅速に送信される可能性があります。ステージ3に到達したときにアラートを設定して、実際に到達するかどうかをテストできます。また、インターネットエクスプローラーでは、ステージ3で応答にアクセスするのは間違いであるため、互換性の問題がある可能性があると考えています。
他のヒント
localhostで実行している場合、リクエストを送信してからレスポンスを取得するまでの間にブラウザが実行される可能性はほとんどありません...
- ブラウザは接続を開き、readyStateを1に設定します
- ブラウザはサーバープロセスにパケットを送信します
- サーバープロセスはパケットを受信し、スケジューラーから優先度を取得します
- サーバーはブラウザにデータを返し、CPUの制御を提供します。ブラウザは実行を継続します。
- ブラウザはすべてのデータが受信されたことを確認し、readyStateを4に設定します。
長い話:「受信」に入ることを期待しないでください。状態。
所属していません StackOverflow