Wie kann der Status 401 von WebAPI an AngularJS zurückgegeben und eine benutzerdefinierte Nachricht hinzugefügt werden?

In meiner WebAPI-Klasse ist einApiControllerIch rufe an wie:

string myCustomMessage = .....;

throw new HttpResponseException(
    new HttpResponseMessage(HttpStatusCode.Unauthorized)
        { ReasonPhrase = myCustomMessage });

Wenn ich mit AngularJS anrufe$resource Service, ich bekomme 401 im Statusfeld die Antwort, im Catch-Block des Versprechens. Die 401 SpieleHttpStatusCode.UnauthorizedAlso ist alles in Ordnung.

Das Problem ist jedoch, dass das Datenfeld der Antwort leer ist (null). Ich bekomme die myCustomMessage nicht zurück.

Nun, wenn nicht ein WerfenHttpResponseException ausnahmsweise werfe ich einfach einen regulärenException Mit einer Nachricht kann diese Nachricht zu Angular zurückkehren.

Ich muss in der Lage sein, beides zu tun: eine benutzerdefinierte Nachricht vom Server zurückzugeben und den zurückgegebenen Statuscode nach meinen Wünschen anzugeben, in diesem Fall 401.

Weiß jemand, wie das funktioniert?

[bearbeiten]Lösung:

 throw new HttpResponseException(
     Request.CreateErrorResponse(HttpStatusCode.Unauthorized, myCustomMessage));

Antworten auf die Frage(2)

Ihre Antwort auf die Frage