我已經注意到谷歌瀏覽器的一些奇怪的行爲:Ajax請求掛在Chrome瀏覽器後連接丟失
- 如果我們發送POST Ajax請求時,有沒有網絡連接,我們得到的控制檯err_internet_disconnected異常(和我認爲,這是確定)
- 如果我們給長崗Ajax請求,失去這個請求,谷歌Chrome不會中止它,就在控制檯和devconsole的網絡選項卡中沒有err_internet_disconnected外,這個請求被標記爲未決期間的網絡連接(即使連接出現)。事實上,這個連接掛起,沒有機會在js代碼中處理這個(我們希望得到ajax錯誤,但沒有任何反應)。
你有什麼建議,如何處理這個問題?
編輯: 的代碼示例:
$.ajax({
url: "https://someserver.com/ws.asmx/ExecuteEx?pureJson",
type: "POST",
contentType: "application/json",
data: data,
success: function() {
console.log("success");
},
error: function() {
console.log("error");
}
})
我試着在Chrome瀏覽器開發控制檯這段代碼在這個頁面在編輯這篇文章。屏幕截圖如下。 第一個請求是我的。我發送了它,然後拔掉了網線。 第二個請求失敗(因爲拔下網線)。 然後我插入網線,第三個請求成功。但是第一個請求仍然有未決狀態(儘管網絡連接丟失)。
您可以發佈您的Ajax代碼? – DiskJunky
@DiskJunky,是的,我已經編輯這篇文章 – SkillZ
你有沒有設置'timeout'財產?查看[爲Ajax設置超時(jQuery)](https://stackoverflow.com/questions/5225597/set-timeout-for-ajax-jquery)。如果超時過期後連接丟失,應該中止請求。你有沒有測試任何其他瀏覽器如FireFox或IE? – Igor