2011-11-18 27 views
0

我正在編寫一個REST api。它在錯誤時返回標題狀態400。

但是,在AJAX方面,我無法得到返回的jqxhr對象。

$.get('site.php', function(data, status, jqxhr) function(data) { 
    //... 
}).error(console.log(jqxhr)); 

它返回Uncaught ReferenceError: jqxhr is not defined
在檢查控制檯中,其顯示400(錯誤請求)的獲取請求。

如何獲取文本錯誤請求?

我可以通過在標題狀態200中傳遞數據來返回數據中的文本錯誤,但這不正確嗎?

回答

2

error功能想要一個回調函數,但你執行console.log(jqxhr)並試圖返回值交給error作爲回調,這就是你「jqxhr沒有定義」錯誤的來源。

你想是這樣的:

$.get('site.php', function(data, status, jqxhr) function(data) { 
    //... 
}).error(function(jqXHR, textStatus, errorThrown) { 
    // Do something interesting. 
}); 

你也應該使用fail代替errorerror is going away

取消通知:jqXHR.success()jqXHR.error()jqXHR.complete()回調將是在jQuery 1.8中不推薦使用。要準備代碼以進行最終刪除,請改爲使用jqXHR.done(),jqXHR.fail()jqXHR.always()

+0

完美答案。並感謝突出強調使用.done().fail()和.always()。 – resting