nsIXMLHttpRequest выполняется только до готовности 1 - PullRequest
1 голос
/ 08 ноября 2010

Я использую следующий скрипт для загрузки некоторых данных через пользовательский интерфейс расширения Firefox.

var req = Components.classes["@mozilla.org/xmlextras/xmlhttprequest;1"].createInstance();
var www = "http://localhost/view?url=http://google.com";
req.open('GET', www, true);

if (req.readyState){
    alert(req.readyState);
}

Предупреждает только 1.
Сценарий не показывает ошибок в консоли ошибок при включенном строгом JavaScript.

1 Ответ

0 голосов
/ 15 ноября 2010

Есть две проблемы с вашим кодом:

  • Вы забыли позвонить req.send(null).Запрос будет выполнен только при вызове send().
  • Вы выполняете асинхронный запрос, потому что вы указали третий параметр для open() быть true.Это означает, что к тому времени, когда вы запросите readyState, запрос все еще будет выполняться.Вместо этого вы должны использовать прослушиватель readystatechange так:

    req.onreadystatechange = function (aEvt) {
        if (req.readyState == 4) {
            if(req.status == 200)
                dump(req.responseText);
            else
                dump("Error loading page\n");
        }
    };
    

Я предлагаю взглянуть на документацию по использованию XMLHttpRequest , которая содержит приведенный выше пример и несколькодр.

...