設置dataType
爲 「JSON」 是指從get.php
響應被解析爲JSON。如果JSON無效或響應爲空,則請求將失敗。
如果URL不正確(無法找到... HTTP 404錯誤),則請求將失敗。
請求的默認type
是「GET」,所以如果get.php
不允許「GET」(出於某種原因),它將返回一個HTTP錯誤,並且請求將失敗。
如果服務器發生錯誤,它可能會返回HTTP 500錯誤,並且請求將失敗。
幫助調試的一個方法是將error
選項添加到$.ajax
調用中,並查看是否調用了該選項。相反,我使用.fail()
方法...它做同樣的事情。
當然,更直接的調試方式是打開瀏覽器的控制檯並查看AJAX請求。它應該顯示多個關於它的細節,可以幫助你確定任何問題。
看起來好像AJAX請求從未被執行/發送過,因爲在中間沒有看到alert
。那麼,僅僅因爲請求不成功,並不意味着它被跳過了。有很多原因(我在上面列出了幾個)爲什麼請求可能會失敗。並且.fail()
方法將幫助您確定原因。
此外,在jQuery中處理延遲對象的通用慣例是使用done
和fail
方法,因此這是一個選項。當然,$.ajax
具有您可以指定的特定選項(success
,error
和complete
- 這是其他用途),所以這也是一個選項。您還可以使用從$.ajax
返回的對象的一部分的特殊方法(.success()
,.error()
,.complete()
),但從版本1.8開始已棄用這些方法 - 請查看.ajax
文檔,以便查看底部-http://api.jquery.com/jQuery.ajax/。但在這裏是如何我設置它,這不應該是從你的有什麼不同,但確實捕獲錯誤:
$.ajax({
url: 'get.php',
dataType: 'json'
}).done(data) {
console.log("successful response");
}).fail(jqXHR, textStatus, errorThrown) {
console.log("error: " + textStatus + ", " + errorThrown);
});
來源
2013-04-08 20:00:11
Ian
那麼,會發生什麼?它看起來不像你最容易找出什麼是錯的樣本 – 2013-04-08 19:59:45
請分享一下get.php返回的內容?它是json嗎? – wmfairuz 2013-04-08 19:59:46
@Barry Chapman它似乎只是跳過整個ajax函數 – Crossman 2013-04-08 20:01:32