Ich habe ein Problem in Bezug auf Ausnahme werfen und auf Client-Seite zu fangen. Das hat alles gut funktioniert, bis ich HTTP401 eingeführt habe. Dies ist meine Basis-Controler als Überschreibungen OnExcpetion:jQuery ajax fängt nicht 401
protected override void OnException(ExceptionContext filterContext)
{
var exception = HandleException.Handle(filterContext.Exception);
filterContext.Exception = exception;
if(exception is AuthenticationException)
filterContext.HttpContext.Response.StatusCode = 401;
else
filterContext.HttpContext.Response.StatusCode = 500;
filterContext.ExceptionHandled = true;
filterContext.Result = new JsonResult()
{
Data = new { Message = filterContext.Exception.Message },
ContentType = "json"
};
}
Dies ist meine Ajax-Aufruf zusammen mit Erfolg und Irrtum.
Die Probleme sind, dass weder Statuscode noch Fehler bei Abschluss aufgerufen werden. Nur Erfolg wird genannt. Wenn ich meinen StatusCode auf 500 setze, funktioniert alles einwandfrei.
Das ist nicht das Problem! Lies die Frage. – Rob
Ich möchte auch hinzufügen, ich verwende OWIN Oauth. – Rob
Ich habe die Lösung [hier] gefunden (http://stackoverflow.com/questions/20149750/owin-unauthorized-webapi-call-returning-login-page-rather-than-401). – Rob