Я пишу приложение Angular 8 / JAX-RS 2.0 в качестве учебного упражнения.Я пытаюсь использовать несколько методов кэширования, о которых я читал в RESTful Java с JAX-RS 2.0 Биллом Бёрком.Один из них включает в себя отправку заголовка ETag в GET-запросе из приложения Angular.Метод JAX-RS оценит значение Etag и вернет 304 с пустым телом, если данные не изменились, в противном случае он вернет 200 с запрашиваемыми данными.Эта часть отлично работает.Я хотел проверить код состояния 304 в моем компоненте Angular.Однако Angular обрабатывает это как ошибку:
Ошибка Angular 304
В соответствии с этой проблемой GitHub это правильное поведение.Фактически, это говорит о том, что все коды, отличные от 2xx, рассматриваются как ошибки.Но это кажется несовместимым со стандартами W3, где говорится о кодах состояния 3xx: «Этот класс кода статуса указывает, что пользовательский агент должен предпринять дальнейшие действия для выполнения запроса».Сдается мне, что только коды состояния 4xx и 5xx должны рассматриваться как ошибки.
Я полагаю, что обходной путь должен был бы перехватить ошибку и проверить код состояния 304, но кто-нибудь знает, почему Angular рассматривает коды состояния 3xx как ошибки?