Как заставить мой вызов API не дать мне строку в качестве ответа на ошибку, а вместо этого тело ошибки? [дублировать]Javascript

Форум по Javascript
Ответить
Anonymous
 Как заставить мой вызов API не дать мне строку в качестве ответа на ошибку, а вместо этого тело ошибки? [дублировать]

Сообщение Anonymous »

У меня есть проблема с управлением ошибкой для моего вызова API в моем угловом приложении: < /p>

Код: Выделить всё

sendRequest(request: BookingRequest): Observable{
const authorityCode = this.tableService.enteId;
const baseUrl = this.getCarBookingBaseUrl(authorityCode);
const url = `${baseUrl}/api/Booking`;
const body = JSON.stringify(request);
return this.http.post(url, body, { headers: this.buildBasicAuthHeaders() }).pipe(
map(_ => _.bookingId || 'Number not found'),
catchError(error => {
const errorMessage = error?.error?.message || 'Unknown error';
return throwError(() => new Error(`Error while sending request: ${errorMessage}`));
})
);}
< /code>
Это мой звонок, который работает, если ошибки нет. Однако, если я получу ошибку 406, в консоли Chrome я получаю это в ответ на вызов ошибки 406: < /p>
{"message":"Invalid contract"}
< /code>
Это то, что я хочу получить, когда подписываюсь на эту функцию. В случае, если я получу ошибку 406, мне нужно показать это сообщение на экране.
Проблема состоит в том, что ошибка 
в CatchError всегда так:

Код: Выделить всё

"Http failure response for https:INSERT_URL_HERE: 406 OK"
Как я могу управлять JSON, который ошибка отправляет мне с сообщением, которое мне нужно показать?

Подробнее здесь: https://stackoverflow.com/questions/796 ... -the-error
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»