[jquery] 如何捕獲Ajax查詢帖子錯誤?



Answers

jQuery 1.5添加了可以很好地處理這個事件的延遲對象。 只需致電$.post並在呼叫之後附加您想要的任何處理程序。 延遲對象甚至允許您附加多個成功和錯誤處理程序。

例:

$.post('status.ajax.php', {deviceId: id})
    .done( function(msg) { ... } )
    .fail( function(xhr, textStatus, errorThrown) {
        alert(xhr.responseText);
    });

在jQuery 1.8之前, done的功能被稱為successfail被稱為error

Question

如果Ajax請求失敗,我想捕獲錯誤並顯示相應的消息。

我的代碼如下所示,但無法捕捉到失敗的Ajax請求。

function getAjaxData(id)
{
     $.post("status.ajax.php", {deviceId : id}, function(data){

        var tab1;

        if (data.length>0) {
            tab1 = data;
        }
        else {
            tab1 = "Error in Ajax";
        }

        return tab1;
    });
}

我發現,Ajax請求失敗時,“Ajax中的錯誤”永遠不會執行。

如何處理Ajax錯誤並在失敗時顯示相應的消息?




$.post('someUri', { }, 
  function(data){ doSomeStuff })
 .fail(function(error) { alert(error.responseJSON) });



我通過在我的jQuery ajax調用中聲明datatype: 'json'來解決這個問題。




Links