Используйте 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
});
});