In meiner WebAPI Klasse, ein ApiController
, ich einen Anruf machen, wie:Wie geben Sie den Status 401 von WebAPI an AngularJS zurück und enthalten auch eine benutzerdefinierte Nachricht?
string myCustomMessage = .....;
throw new HttpResponseException(
new HttpResponseMessage(HttpStatusCode.Unauthorized)
{ ReasonPhrase = myCustomMessage });
Als ich AngularJS $resource
Service Call, kann ich die Antwort 401 im Statusfeld erhalten, in dem catch-Block des Versprechens . Die 401 passt HttpStatusCode.Unauthorized
, also ist alles gut.
Das Problem ist jedoch, dass das Datenfeld der Antwort leer ist (null). Ich bekomme die myCustomMessage nicht zurück.
Jetzt, anstatt eine HttpResponseException
Ausnahme zu werfen, ich nur eine regelmäßige Exception
mit einer Nachricht werfen, diese Nachricht macht es zurück zu Angular Sway.
Ich muß in der Lage sein, beides zu tun: return eine benutzerdefinierte Nachricht vom Server, sowie der Status-Code zurückgegeben werden, was ich will, in diesem Fall 401.
Wer weiß, wie man diese Arbeit macht ?
[Bearbeiten] Lösung:
throw new HttpResponseException(
Request.CreateErrorResponse(HttpStatusCode.Unauthorized, myCustomMessage));
Was passiert, wenn Sie einfach '$ http' verwenden? –
Karolis, ich bin in Ordnung mit einfachen $ http. Ich würde das tun, wenn wir festgestellt haben, dass $ Ressource nicht verwendet werden kann, um dieses Problem zu lösen. Wurde das bestätigt? –