使用ASP.NET MVC 5,我想爲不同的場景返回適當的HTTP狀態碼(401用戶沒有被認證,403用戶沒有權限某些資源,等等),而不是在jQuery中處理它們。HttpStatusCodeResult(401)返回「302 Found」
但問題是,當我嘗試返回401時,它總是返回「302:找到」。自定義狀態碼的訣竅是什麼?爲什麼這不起作用?
public ActionResult My()
{
if (User.Identity.IsAuthenticated == false)
{
return new HttpStatusCodeResult(401, "User is not authenticated.");
// Returns "302: Found"
}
// ... other code ...
}
編輯1:有趣的一點:
如果我有404這樣的替換401:
return new HttpNotFoundResult("User is not authenticated.");
然後,它確實給了404和jQuery能趕上問題。然而,它不是一個優雅的解決方案,因爲錯誤代碼是不同的。
編輯2: 302是對我不好,因爲結果將在jQuery.get().fail()
使用,但302不會通過靶向fail()
您使用表單身份驗證嗎? –
看看這個:http://stackoverflow.com/questions/10348111/custom-error-message-with-httpstatuscoderesult-jquery – mrtig
mrtig:我以前見過這個,但沒有幫助,因爲它說它已經解決了通過使用IIS express。我使用IIS Express,但我仍然有問題。 –