2009-03-03 8 views
3

私はFirebugにブレークポイントを設定していて、私のxhrオブジェクトを調べています。 readyStateは0、ステータスは200です。私の理解は、ステータスが200の場合、リクエストは少なくとも開始されていて、readystateは少なくとも1でなければなりません。誰でも何が起こっているのか説明できますか?混乱しています - 私のXMLHttpRequestはreadyStateが0で200のステータスを持っています

xhrオブジェクトを作成するためにjqueryの$ .ajaxを使用していますが、xhrの読み込みとステータスに影響するとは思わないでしょう。

おかげで、

-Morgan

+0

xhrオブジェクトはデータを返しますか? – rogeriopvl

答えて

3

のreadyStateが4である場合、ステータスは、readyStateが進行のプログレッシブ表示であることを200

+1

ステータス200は、意味のあるデータを取得する前に発生することがあります。これは単なるヘッダーです。 –

+0

しかし、その場合に読影が0になるのは意味がありますか? – morgancodes

+0

morgancodes:ブレークポイントをあまりにも早く設定した場合は、はい。 –

4

W3C definesである場合、要求は、完了していませんxmlhttprequest。 0から4までの順番に遷移します(初期化されていない、開いている、送信済み、受信中、読み込まれている)。これはプロパティのポイントであり、onreadystatechangeイベントを監視する理由であり、応答ヘッダーのステータスではありません。

同じ仕様で、statusは利用できないとき(受信時または読み込み時)に例外を発生させることになっていますが、これは実装が容易で使い勝手が良いと思います。

+0

「受信時または読み込み時に」?ステータスは 'loaded'でのみ使用可能になります。 –

+0

仕様から:「readyStateが3(Receiving)または4(Loaded)のときに使用可能でなければなりません。 – annakata

関連する問題