Angular избежать трассировки консоли при ошибке $http
В моем приложении я использую REST api для получения моих данных.
Если отправить запрос, подобный этому
$http.get('api/entity/' + $scope.entityId).success(/* DO STUFF */).error(/* DO STUFF */)
В службе, если entityId не существует, я возвращаю 404.
В функции ошибки я улавлю ее с помощью состояния (второй параметр) и действую на нем соответствующим образом.
Меня раздражает тот факт, что angular, если бросать исключение и загрязняет консоль javascript. Это похоже на Angular.js: 8165
Что там можно сказать angular, что я взрослый разработчик, и я обработаю то, что он видит как ошибку сам по-хорошему?
Другими словами, могу ли я сказать angular, чтобы не выводить это дерьмо?
Спасибо,
Ответы
Ответ 1
Это ваша функциональность браузера, а не часть AngularJS, которая ведет журнал. Здесь образец из консоли этой страницы:
![console sample]()
Вы можете видеть, что он регистрирует то же самое сообщение об ошибке, которое вы связывали в вопросительном комментарии, и действительно указывает на часть в исходном коде, но я не добавлял никаких операторов протоколирования.
Лучшее, что вы можете сделать, это выполнить этот ответ и добавить фильтр на консоль.
Ответ 2
Я не добавляю для этого реального решения, поскольку Филипп предоставил правильный ответ, но я хочу опубликовать идею о "обходном пути" для этого.
Если вы действительно хотите этого избежать, решение просто состоит в том, чтобы сделать все неуспешные ответы как обработанные ответы (например: недопустимые учетные данные, наличие электронной почты, недопустимая дата начала,... и и так далее), так что все они действуют как успешные, а статус возвращается с 200, и вы можете добавить в заголовок ответа или тело другое свойство, например secondaryStatusCode=400
, затем внутри функции успеха в начале вы попытаетесь прочитать это, 200.
Я знаю, что это уродливое решение, но вы можете использовать этот способ, если вам действительно нужно найти обходной путь для этого.