Используйте Sentry's Raven JS для сбора всех ошибок HTTP

Я настроил приложение Sentry для сбора ошибок HTTP / JS, которые могут возникнуть на стороне клиента. Тем не менее, кажется, что когда я пытаюсь сделать около 400 HTTP-запросов, Sentry не удалось соответственно захватить запрос.

Это стандартное поведение Sentry или что-то отсутствует в моем коде (ниже)?

<!DOCTYPE html>
<html>
    <head>
            <title>Hi there</title>
            <script src="//code.jquery.com/jquery-1.12.0.min.js"></script>
            <script src="https://cdn.ravenjs.com/2.1.1/raven.min.js"></script>
            <script>Raven.config('http://xxx@xxx.xxxxx.com/4').install();</script>
    </head>
    <body>
        Hello the world :-)
        <script type="text/javascript">
            $.get("http://somehttp400url.com/");
        </script>
    </body>
</html>

Спасибо за ваш отзыв

3 ответа

Решение

Ты можешь использовать ajaxError обработчик ( https://api.jquery.com/ajaxError/):

$( document ).ajaxError(function( event, request, settings ) {
  Raven.captureException(new Error(JSON.stringify(request)));
});

Sentry docs по переносу функций будет самым каноническим источником этого, но эффективно скажет вам делать то, что говорит Боб.:)

Я нашел, что это работает лучше всего, комбинируя всю доступную информацию в поле дополнительных данных:

$(document).ajaxError(function(event, jqXHR, ajaxSettings, thrownError) {
  var new_obj= Object.assign({},jqXHR, ajaxSettings);
  Raven.captureMessage(thrownError || jqXHR.statusText, {
        extra: new_obj
  });
});
Другие вопросы по тегам