В моем классе WebAPI, ApiController
, я делаю вызов, например:
string myCustomMessage = .....;
throw new HttpResponseException(
new HttpResponseMessage(HttpStatusCode.Unauthorized)
{ ReasonPhrase = myCustomMessage });
Когда я звоню с помощью услуги AngularJS $resource
, я получаю 401 в поле статуса ответ в блоке catch обещания. 401 соответствует HttpStatusCode.Unauthorized
, поэтому все хорошо.
Однако проблема заключается в том, что поле данных ответа пусто (null). Я не возвращаю myCustomMessage.
Теперь, вместо того, чтобы бросать исключение HttpResponseException
, я просто бросаю регулярный Exception
с сообщением, это сообщение действительно возвращает его к Angular.
Мне нужно иметь возможность сделать так: вернуть пользовательское сообщение с сервера, а также вернуть код состояния, который я хочу, в этом случае 401.
Кто-нибудь знает, как сделать эту работу?
[править] Решение:
throw new HttpResponseException(
Request.CreateErrorResponse(HttpStatusCode.Unauthorized, myCustomMessage));