2013-01-18 158 views
3

我想從我的Web API控制器拋出一個異常。 問題是我的JavaScript代碼沒有得到任何數據。ASP.NET Web API拋出異常

throw new HttpResponseException(HttpStatusCode.NoContent); 

在我的jQuery ajax函數中,我沒有得到任何回報。我從ajax調用返回undefined。 所以基本上什麼是從服務器處理錯誤的正確方法?

回答

1

我現在覺得很愚蠢,我嘗試了一個不同的StatusCode,現在我實際上得到了一些數據。我認爲每個statusCode都會返回一些價值。此狀態代碼literaly返回NoContent。

+2

僅供參考:「無內容」實際上是204狀態碼。客戶端認爲2XX範圍內的任何狀態代碼都是成功的。因此,拋出異常並返回NoContent是有點矛盾的。您可能在尋找BadRequest或NotFound作爲您的狀態代碼。 –

+0

HTTP狀態碼204使得GET動詞的行爲像HEAD動詞,意味着不應該返回數據。您應該返回HTTP狀態代碼200或其他2xx狀態。我同意Darrel的說法,拋出一個2xx狀態碼作爲異常在語義上看起來不正確。 –