2011-09-28 16 views
5

私は最終的にAJAXを(隠されたiframeではなく)もう一度試してみることにしました。AJAXは異常なステータスコードを返します

これは、ユーザーが受信したプライベートメッセージの数をサーバーに照会する簡単なスクリプトです。サーバーは単一の番号で応答し、スクリプトはインジケーターを更新し、再度照会するために5秒間のタイムアウトを設定します。

まれに(たいていAFKに行きます)、私は最も奇妙なHTTPステータスコードを取得し始めます。

Chromeで

"AJAXリクエストが/ajax/network.php、HTTPステータス12029を取得するために失敗しました":IEで
"AJAX要求は0 /ajax/network.php、HTTPのステータスを取得するために失敗しました"これらのコードのどちらも有効ではありません。ここで何が起こっているのですか?それをどうやって止めることができますか?

+0

これらのエラーは繰り返し可能ですか、または完全にランダムに発生しますか? – Alex

答えて

6

これはAJAXの厄介な側面です。私はすべての非200ステータスをエラーとして扱うのが最善であることがわかります。実際には、実際の結果に関する特定のエラーメッセージ(「問題が発生しました」)をユーザーに表示することはないので、矛盾したエラー条件について過度に心配する必要はありません。

jQueryはAJAXの動作のいくつかを標準化しているため、その使用方法を調べることもできます。

ところで、Chromeのエラー0とIEの12029は接続の問題を示しています。これはHTTPとは関係がないため、無効なコードが表示されます。

+0

さて、AJAX関数 'silent'にパラメータを追加しました。これは、エラーメッセージの警告を抑制します。エラーメッセージはユーザーが開始したアクションには役立ちますが、この自動更新機能では迷惑です。答えをありがとう、時間制限が許せば受け入れます。 –

+3

仲間のgooglerのメモ:12029は接続が切断されているようです。 Ref:http://stackoverflow.com/questions/872206/http-status-code-0-what-does-this-mean-in-ms-xmlhttp/905751#905751 –

+0

ちょうど約4年後に「ありがとう」 「仲間googler」から。 D ** n IE8 @AndrewDunkman – jonayreyes

関連する問題