最近我在使用jQuery Ajax的時候,遇到了一個十分棘手的問題,就是假死(即請求雖然發(fā)送成功,但是服務器沒有響應)。
我使用了以下的代碼:
$.ajax({ url: "test.php", type: "POST", success: function(response) { console.log("請求成功"); }, error: function(xhr, status, error) { console.log("請求失敗"); } });
這是一個基本的Ajax請求代碼,但是當我運行時,發(fā)現(xiàn)瀏覽器正在等待響應,但是一直沒有響應。
經(jīng)過查找和測試,我發(fā)現(xiàn)了這個問題。實際上,這個問題并不是jQuery Ajax的問題,而是服務端的問題。如果服務端沒有響應,那么jQuery Ajax會一直等待響應,直到超時。
解決這個問題的方法很簡單,就是設置超時時間,如果超過了這個時間還沒有響應,那么就認為服務器出現(xiàn)了問題,停止請求。代碼如下:
$.ajax({ url: "test.php", type: "POST", timeout: 5000, //設置超時時間為5秒鐘 success: function(response) { console.log("請求成功"); }, error: function(xhr, status, error) { console.log("請求失敗"); } });
這樣就可以解決假死的問題了。