ASP.NET MVC 5 を使用して、jQuery で処理するよりも、さまざまなシナリオ (ユーザーが認証されていない場合は 401、ユーザーがリソースに対する権利を持っていない場合は 403 など) に対して適切な HTTP ステータス コードを返したいと考えています。
しかし、問題は、401 を返そうとすると、常に「302: Found」が返されることです。カスタム ステータス コードのトリックは何ですか? また、これが機能しないのはなぜですか?
public ActionResult My()
{
if (User.Identity.IsAuthenticated == false)
{
return new HttpStatusCodeResult(401, "User is not authenticated.");
// Returns "302: Found"
}
// ... other code ...
}
編集 1: 興味深いビット:
401 を次のように 404 に置き換えると:
return new HttpNotFoundResult("User is not authenticated.");
その後、実際に 404 が返され、jQuery が問題をキャッチできます。ただし、エラー コードが異なるため、エレガントな解決策ではありません。
EDIT 2:結果は で使用されるため、302 は私には適していませんjQuery.get().fail()
が、302 はトリガーしません。fail()