2011-10-23 28 views
0

可能重複:
jQuery $.get or $.post to catch page load error (eg. 404)檢查401,404,500,其他的jQuery/JavaScript的

也許我錯了,通過這個思想。但無論如何,目前在jQuery的幫助下,我正在運行$ .post()。

但是我張貼要根據目錄獲取內容。問題是信息是動態設置的。因此,如果事實證明,我在某種意義上查詢文件/文件夾,並且它不存在,我得到一個404,401,500無論什麼錯誤。基本上簡而言之,告訴我它不存在。也就是說,我該如何檢查它,或者如果發生這種情況,那麼我可以通過一個對話框或其他東西來通過javascript拋出一個自定義錯誤。

這有可能嗎?請注意,ajax/post目前沒有綁定到服務器端腳本,如果它最終會被綁定到rails腳本上的ruby。

回答

4

您可以在POST後立即添加.error(function(){...})以確定如何處理,如果您的AJAX失敗以及返回的錯誤代碼。

代碼:

$.post('/path/to/script/',function(){alert('success');}) 
    .error(function() { alert("error"); }); 

說明:

誤差(jqXHR,textStatus,errorThrown)功能

一個函數,如果請求不被調用。該函數接收三個參數:jqXHR(在jQuery 1.4.x中,XMLHttpRequest)對象,一個描述發生的錯誤類型的字符串以及一個可選的異常對象(如果發生的話)。第二個參數的可能值(除了null)是「timeout」,「error」,「abort」和「parsererror」。發生HTTP錯誤時,errorThrown會收到HTTP狀態的文本部分,例如「未找到」或「內部服務器錯誤」。

http://api.jquery.com/jQuery.ajax/

+0

非常好的謝謝 – chris