Как перехватить XML-пакеты, которые отправляет расширение ConsoleExport Firebug? - PullRequest
1 голос
/ 17 декабря 2011

Я установил ConsoleExport Расширение Firebug.Я включил функцию автоматического экспорта на about:config, установив extensions.firebug.consoleexport.active на true.Я открыл страницу с ошибкой JavaScript, например http://www.random.org. Я включил Firebug, перезагрузил страницу.Я вижу ошибку в журнале:

uncaught exception: Error: Permission denied for <https://www.facebook.com> to get property Proxy.InstallTrigger

На странице ConsoleExport написано:

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

Я знаю, что должен установить extensions.firebug.consoleexport.serverURL для URL сервера.Я не знаю, как перехватывать XML-пакеты, которые отправляет ConsoleExport.

Например, я знаю, как настроить Apache на Mac, но что тогда?Как перехватить XML-пакеты?

Среда:

  • Mac OS X 10.7.2
  • Firefox 8.0.1
  • Firebug 1.8.4
  • ConsoleExport 0.5b4

У меня есть доступ к компьютерам с Windows и Linux, если сервер, который перехватывает XML-пакеты, легче настроить там.

Ответы [ 2 ]

2 голосов
/ 22 декабря 2011

Модифицированный скрипт, исправляющий проблему с получением опубликованных данных:

Обратите внимание, что тип содержимого публикуемых данных - application / xml

<?php
  $filename = 'consoleexport.log';

  if (!$handle = fopen($filename, 'a'))
  {
    echo 'File "'.$filename.'" could not be opened';
    exit;
  }

  ob_start();
  $content = file_get_contents('php://input');
  $content .= "\n";
  ob_clean();

  if (!fwrite($handle, $content))
  {
    echo 'Can\'t write into file "'.$filename.'"';
    exit;
  }

  echo 'Done!';
  fclose($handle);
?>

Honza

1 голос
/ 22 декабря 2011

Похоже, что он просто отправляет данные XML через запрос AJAX на этот URL.Поэтому вам нужно определить сценарий, который обрабатывает эти данные XML.

Например, когда вы используете PHP, вы можете установить для параметра serverURL значение http://localhost/handleFBConsoleOutput.php.Этот скрипт может выглядеть так:

<?php
  $filename = '/path/to/log/file/consoleexport.log';

  if (!$handle = fopen($filename, 'a'))
  {
    echo 'File "'.$filename.'" could not be opened';
    exit;
  }

  ob_start();
  var_dump($_POST);
  $content = ob_get_contents();
  ob_clean();

  if (!fwrite($handle, $content))
  {
    echo 'Can\'t write into file "'.$filename.'"';
    exit;
  }

  echo 'Done!';
  fclose($handle);
?>

Код, показанный здесь, записывает дамп всех параметров POST.Возможно, вы захотите указать точный параметр как выходной, заменив переменную $content на $_POST['param_name'], где param_name - имя параметра, содержащего содержимое XML, и удалите блок ob_start(); ... ob_clean();.

Для справки: та же проблема была задана в дискуссионной группе Firebug .

...