2011-05-18 43 views
0

我提出以下Ajax調用:如何處理未由statusCode處理的ajax錯誤?

$.ajax({ 
    type: type, 
    url: url, 
    data: data, 
    success: successCallback, 
    error: defaultFailureCallback, 
    dataType: 'json', 
    statusCode: statusCode 
}); 

我傳遞的statusCode參數幾個HTTP狀態代碼和相應的錯誤由各自的功能進行處理。現在我想要defaultFailureCallback函數來處理所有其他錯誤代碼。我該怎麼做呢?

jQuery中的誤差函數的簽名是:error(jqXHR, textStatus, errorThrown)

我現在面臨的問題是,有沒有辦法訪問defaultFailureCallback功能內的實際statusCode參數。 jqXHR似乎並未包含該信息。 (我可以從jqXHR.status當前狀態)

+0

此鏈接可能會幫助你:http://www.cupcakewithsprinkles.com/how-to-handle-http-redirects-with-jquery-and-django/ – diEcho 2011-05-18 10:05:19

回答

0

的解決方案是使用this變量,它包含statusCode值了。

0

jqXHR應具備的使用性能status,請參閱:http://api.jquery.com/jQuery.ajax/#jqXHR

+0

是的,但我怎麼知道這是否是由處理statusCode中的一些其他功能?例如,我想要做一些類似'if(xhr.statusCode [xhr.status] == undefined){doSomething}' – Niyaz 2011-05-18 10:00:22

+0

我明白了。假設你將一個對象'statusCodes'傳遞給ajax設置。你可以這樣做:'if(typeof statusCodes [xhr.status] =='undefined')//沒有處理函數...'。 – ctekse 2011-05-18 10:09:32