XMLHttpRequest в расширении Firefox - PullRequest
9 голосов
/ 02 января 2012

Я пишу расширение FireFox и хочу загрузить данные с сервера.Но когда я пытаюсь инициализировать XMLHttpRequest с помощью:

var request = new XMLHttpRequest();

Консоль ошибок говорит:

ReferenceError: XMLHttpRequest is not defined

Нужно ли что-то включать или почему не распознается XMLTttpRequest?

Ответы [ 3 ]

10 голосов
/ 10 января 2012

Add-on SDK (который вы используете косвенно через Add-on Builder) предоставляет пакет request , который по сути является оберткой для XMLHttpRequest, вам следует использовать его. Насколько я понимаю, вам не предоставляется прямой XMLHttpRequest доступ для предотвращения проблем, если надстройка удалена / отключена во время выполнения запроса.

3 голосов
/ 27 февраля 2014

Для использования конструктора XMLHttpRequest необходимо добавить конструктор компонента XPCOM:

const XMLHttpRequest  = Components.Constructor("@mozilla.org/xmlextras/xmlhttprequest;1", "nsIXMLHttpRequest");

и после:

// some code
var req = new XMLHttpRequest();
// some code

Подробнее о MDN

1 голос
/ 13 октября 2012

Кажется, что ответ Владимира полезен для большинства таких случаев. Но есть еще один случай.

Я нашел трис-страницу, пытающуюся решить проблему с этой ошибкой в ​​Firefox 16. Странно, но я никогда не видел эту ошибку в Firefox 15.

У меня есть эта ошибка в скрипте контента на некоторых страницах. Сценарий был введен в начале:

contentScriptWhen : "start",

Похоже, что в некоторых случаях объект окна не был правильно инициализирован. Итак, я только что изменил загрузку скрипта от начала до конца. Это было возможно в моем случае. Проблема ушла ...

Не знаю, почему оно появляется, но знаю решение и надеюсь, что оно кому-нибудь пригодится.

...