2011-09-28 90 views
5

因此,我終於重新嘗試了AJAX(而不是隱藏的iframe),現在我記得爲什麼我首先非常討厭AJAX。AJAX返回不尋常的狀態代碼

這是一個簡單的腳本,用於向服務器查詢用戶收到的私人消息的數量。服務器用單個號碼進行響應,並且腳本更新指示器並將超時設置爲五秒鐘以再次查詢。

在罕見的情況下(通常當我去AFK一段時間),我開始得到最奇怪的HTTP狀態代碼。

在Chrome: 「AJAX請求失敗檢索/ajax/network.php,HTTP狀態0」
在IE: 「AJAX請求失敗檢索/ajax/network.php,HTTP狀態12029」

這些代碼都不是有效的。這裏發生了什麼,我怎樣才能阻止它發生?

+0

這些錯誤是否可以重複,還是完全隨機發生? – Alex

回答

6

這是AJAX令人討厭的一個方面。我覺得最好將所有非200狀態視爲錯誤。真的,您不會向用戶顯示與實際結果有關的特定錯誤消息(「發生問題」),因此我不會過分擔心不一致的錯誤情況。

jQuery正常化了一些AJAX行爲,所以你可能也想看看使用它。

順便說一下,Chrome中的錯誤0和IE中的12029表明連接問題;因爲這與HTTP無關,這就是顯示無效代碼的原因。

+0

好吧,我已經爲我的AJAX函數「silent」添加了一個參數,它抑制了錯誤消息警報。錯誤消息在用戶發起的操作上很有用,但是在這種自動更新的事情上他們很煩人。謝謝你的回答,在時間允許的時候接受。 –

+3

只是一個注意谷歌同伴:12029似乎是一個丟失的連接。參考:http://stackoverflow.com/questions/872206/http-status-code-0-what-does-this-mean-in-ms-xmlhttp/905751#905751 –

+0

只是一個「謝謝」近4年後來自「Google同伴」。 D ** n IE8 @AndrewDunkman – jonayreyes