2013-07-10 16 views
24
xmlhttp.onreadystatechange = function() 
{ 
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) 
    { 
     document.getElementById("myDiv").innerHTML = xmlhttp.responseText; 
    } 
} 

上記のコードは、http://www.w3schools.com/ajax/ajax_xmlhttprequest_onreadystatechange.aspです。このチュートリアルによるreadyStateと状態== 200

質問

readyState: 4: request finished and response is ready 

status: 200: "OK" 

When readyState is 4 and status is 200, the response is ready: 

xmlhttp.readyState == 4は、応答の準備ができたときに、なぜ我々はまだxmlhttp.status == 200が必要ないので? xmlhttp.readyState == 4xmlhttp.status == 200の違いは何ですか?

答えて

25

応答のステータスは、通常、要求が成功したかどうかを判断するために使用されます(xhr.status)。 xhr.readyStateは、単に「未送信」(0)、「完了した応答(4)」などの要求の状態を判断するために使用されます。

サーバーは、status、ユーザエージェントはreadyStateを提供します。

+0

まさに私が必要なもの! –

1

サーバー側のコードにエラーがあるとします。あなたはページを要求し、サーバがレスポンスのストリーミングを終えるとreadyStateは4になりますが、ステータスコードは500(または500-something)になります。

0

readyStateはリクエストのレスポンスを表します。レスポンスの取得が完了していて、見るべきことがある場合は4です。実際の値はまだ分かっていないので、返されたstatusを確認する必要があります。

14

ステータスは、サーバの応答がOKであるかどうかを示します。一般の言葉に
、あなたが

500状況だとき - 599:サーバーがエラーに

400だった - 499:これはクライアントエラーです(例:404ページが見つかりません。 - )

300 399:次にリダイレクト

200が存在する - 299:それが正しいと

100から199:はその後、ステータス== 200はあなたのサーバーというメッセージになっている情報メッセージ

を意味:「ちょっと男私は仕事をします!」

+0

本当に助けてくれてありがとう –

+0

「やあ、私は仕事をする!その説明のようなhehehe – samer

14

私のアナロジー:患者を運ぶ救急車は、このシナリオファミリー(クライアント)と病院(サーバー)が救急車が正常に病院に達し二つ

  • を追跡するために必要hospital.Inに起こっている(readyState。 )
  • このプロセス中の患者の健康状態の更新。(status

readyState === 4status === 200場合は、すべてがすべてが同じようにAJAX呼び出しの作品をright.Inであることを意味します。

+0

本当に助けてくれてありがとう –

9

readyState XMLHttpRequestのステータスを保持します。 0から4の変更:

0:初期化されていない要求

1:サーバー接続確立

2:要求が

3受付:要求

4の処理:終了要求応答が準備完了 ステータス200:「OK」 404:ページが見つかりません

+0

本当に助けてくれてありがとう –

0

onreadystatechange = function()は、サーバーからの応答を取得したときにのみ実行されます。 サーバーからの応答があった場合は、4.And 200で示された要求が完了したことを意味し、正しい状況を示します。 "4:要求は完了し、応答は準備完了ステータス200" ページが見つからない場合、状態404になります。

関連する問題