Отладка кода Ajax с помощью Firebug - PullRequest
21 голосов
/ 03 марта 2009

У меня есть несколько проблем при отладке кода, возвращаемого при вызове Ajax - в частности, функции, возвращаемой в json (ошибки не попадают в Firefox) - вплоть до того момента, когда я начал отлаживать эти проблемы в Internet Explorer ( Я думаю, что это проблема, связанная с Firefox, так как Venkman также не обнаруживает эти ошибки) Знаете ли вы какой-либо способ отладки кода, возвращенного в json при вызове Ajax?


ИЗД. 03.04.2009 15: 05


Спасибо всем за ваши ответы, но я думаю, что не объяснил себя достаточно хорошо. Я знаю достаточно о Firebug, чтобы выполнять базовую отладку, но моя проблема возникает, когда я получаю некоторый код в вызове Ajax, в котором есть проблема. Допустим, у нас есть следующий HTML-файл (для корректной работы вам понадобится прототип в той же папке):

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<script type="text/javascript" src="prototype.js"></script>
</head>
<body>
<script>
function ajaxErrorTest()
{
    new Ajax.Request('data.json', {
           'method': 'get',
           'onSuccess': function(data){
           if(data.responseJSON.func)
           data.responseJSON.func();}});
}
</script>
<input type="button" value="test" onclick="ajaxErrorTest();" />
</body>
</html>

и содержимое файла data.json выглядит так:

{'func':function(){console.log('loaded...');alert('hey');}}

Если вы загрузите страницу в браузере и нажмете кнопку «Тест» (и все пройдет хорошо), вы получите что-то в консоли и окно с предупреждением «Эй». Теперь измените файл data.json следующим образом:

{'func':function(){console.log('loaded...');alerts('hey');}}

... и снова нажмите кнопку «Тест» (перезагрузка страницы не требуется ;-) Вы получаете консольную строку, но нет окна предупреждения ... и никаких ошибок !!! это ошибки, которые я пытаюсь отладить.

Ответы [ 11 ]

0 голосов
/ 03 марта 2009

Я использую отладчик прокси HTTP, называемый fiddler, который всегда хорошо работал для отладки моих проблем с AJAX. Он захватывает все HTTP-запросы и ответы для просмотра. Его свободно доступны от http://www.fiddlertool.com/

...