Вход клиентских ошибок JavaScript на [закрытом] сервере

Указатель NULL - это тот, который указывает на никуда. Когда вы разыскиваете указатель p, вы говорите «дайте мне данные в месте, хранящемся в« p ». Когда p является нулевым указателем, местоположение, хранящееся в p, является nowhere, вы говорите «Дайте мне данные в месте« нигде ». Очевидно, он не может этого сделать, поэтому он выбрасывает NULL pointer exception.

В общем, это потому, что что-то не было правильно инициализировано.

93
задан James McMahon 27 September 2012 в 17:54
поделиться

5 ответов

Вы могли попытаться настроить свой собственный обработчик для onerror событие и использовать XMLHttpRequest для сообщения сервера, что пошло не так, как надо, однако так как это не часть никакой спецификации, , поддержка несколько облуплена .

Вот пример от Используя XMLHttpRequest для входа ошибок JavaScript :

window.onerror = function(msg, url, line)
{
  var req = new XMLHttpRequest();
  var params = "msg=" + encodeURIComponent(msg) + '&url=' + encodeURIComponent(url) + "&line=" + line;
  req.open("POST", "/scripts/logerror.php");
  req.send(params);
};
67
ответ дан Benjamin Gruenbaum 24 November 2019 в 06:21
поделиться

Я только что реализовал серверную регистрацию ошибок на ошибках JavaScript на проекте на работе. Существует смесь унаследованного кода и нового кода с помощью jQuery.

я использую комбинацию window.onerror и обертывание обработчиков событий jQuery и функции onready с функцией обработки ошибок (см.: Отслеживание ошибки JavaScript: Почему window.onerror Недостаточно ).

  • window.onerror: ловят все ошибки в IE (и большинство ошибок в Firefox), но ничего не делает в Safari и Opera.
  • обработчики событий jQuery: фиксирует ошибки события jQuery во всех браузерах.
  • jQuery готовая функция: фиксирует ошибки инициализации во всех браузерах.

, Как только я зафиксировал ошибку, я добавляю некоторые дополнительные свойства к ней (URL, браузер, и т.д.) и затем отправляю ее назад на сервер с помощью вызова ajax.

На сервере у меня есть маленькая страница, которая просто берет отправленные аргументы и производит их к нашей нормальной платформе журналирования сервера.

я хотел бы к открытому исходному коду код для этого (как плагин jQuery). Если бы кто-либо заинтересован сообщенный мне, это помогло бы убедить боссов!

12
ответ дан Justin Tanner 24 November 2019 в 06:21
поделиться

Также я рекомендую использовать утилита TraceTool, она идет с поддержкой JavaScript и очень удобна для контроля JS.

0
ответ дан cleg 24 November 2019 в 06:21
поделиться

Если Вы желаете зарегистрировать клиентские ошибки назад к серверу, Вы оказываетесь перед необходимостью делать некоторую обработку сервера. Лучший выбор состоял бы в том, чтобы иметь веб-сервис, к которому можно получить доступ через JavaScript (Ajax), и Вы передаете свою информацию о журнале ошибок ему.

не Делает 100%, решают проблему, потому что, если бы проблема с веб-сервером, размещающим веб-сервис, Вы в беде, Вы - другая опция, должен был бы отправить информацию через стандартную страницу через строку запроса, Один метод выполнения, которое является через динамичную генерацию Тегов изображения (которые тогда удалены) как браузер попытается загрузить источник изображения. Это обходит междоменные вызовы JavaScript приятно все же. Следует иметь в виду, что Вы в беде, если у кого-то есть выключенные изображения;)

0
ответ дан Aaron Powell 24 November 2019 в 06:21
поделиться

Вы могли потенциально выполнить вызов Ajax к серверу от попытки/выгоды, но это, вероятно, о лучшем, которое можно сделать.

май я предлагаю поблочное тестирование JavaScript вместо этого? Возможно с JSUnit?

0
ответ дан Rob W 24 November 2019 в 06:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: