Предотвращение регистрации ошибок HTTP в консоли браузера

Я пытаюсь выяснить, как подавлять ошибки HTTP-запроса и ответа в моем приложении, например, когда на мой сервер отправляется плохой запрос, я не хочу, чтобы ошибка была зарегистрирована в консоли браузера. Я попытался переопределить $exceptionHandler, но эта логика работает для всех исключений, кроме ошибок HTTP, которые все еще регистрируются в браузере. Я также создал HTTP-перехватчики, но глобальная ошибка 400 Bad Request появляется перед логикой, которую я положил в свой responseError:

'responseError': function (rejection) {
 console.log(rejection);
 return $q.reject();
}

Это тоже не подавляет ошибку, любые идеи?

ИЗМЕНИТЬ

Ошибка, которую я получаю, такова: POST http://localhost:38349/token 400 (Bad Request) enter image description here

Ответы

Ответ 1

Фактически Angular не регистрирует это.

Это объект XMLHttpRequest, который делает это (тот же самый вопрос здесь с JQuery). Я извлек логику из Angular и сделал рабочий автономный пример:

var method = 'POST';
var url404 = '/tnseiartneiasrt/arsntiearsntiasrntiarnstsie';

var xhr = new window.XMLHttpRequest();
xhr.open(method, url404, true);
xhr.onreadystatechange = function() {
  if (xhr && xhr.readyState == 4) {
    console.log('should have logged an error already :(');
  }
};
xhr.send(null);

Как вы можете видеть, это объект xhr, который регистрирует его. Возможно, есть способ отключить все console.log, прежде чем запускать запрос xhr, но я думаю, что лучше сделать

  • Перепроектируйте поток ошибок, чтобы вернуть код состояния 200, встроенный с внутренним кодом ошибки в теле
  • Live с консольным протоколированием (средний пользователь вообще не знает о консоли)

Я выбрал второй вариант, потому что мне кажется, что его легче понять, поскольку он не требует дополнительной логики, когда кто-то читает ваш код.

Надеюсь, что это поможет:)

Ответ 2

Ваш браузер решает записать неправильные запросы в журнал, и это правильно. Если вы не хотите, чтобы этот запрос не выполнялся или не отправлял другой код ответа с вашего веб-сервера.