Witam.
Mam mały problem z XMLHttpRequest.
Wywołuje funkcje JS, która w tle wywołuje funkcje php. Do wywołania strony używam funkcji loadXMLDoc(url). I teraz problem polega na tym, że funkcja nie działa za każdym razem. Na 10 wywołań raz nie działa. Czy można stworzyć jakąś kontrolę, czy funkcja została wywołana poprawnie?
alert(req.readyState) zwroca zawsze zero a powinno 4. Chciałbym dopisać sprawdzenie czy skrypt sie wykonał, i jeśli się nie wykonał to wywołac funkcję loadXMLDoc(url) jeszcze raz (choć grozi to zapętleniem). Czy macie może podobne funkcje, które was nie zawodząquestionmark.gif

A oto bląd który otrzymuje przy wywołaniu funkcji pod Mozillą.
Błąd: [Exception... "Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsIXMLHttpRequest.status]" nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)" location: "JS frame :: http://.../funkcjeJScript.js :: processReqChange :: line 388" data: no]

gdzies wygooglowałem, że jest to związane z jakimś wewnętrznym błędem w Mozilli.

Kod
var req;

function loadXMLDoc(url) {
    req = false;
    // branch for native XMLHttpRequest object
    if(window.XMLHttpRequest) {
        try {
            req = new XMLHttpRequest();
        } catch(e) {
            req = false;
        }
    // branch for IE/Windows ActiveX version
    } else if(window.ActiveXObject) {
           try {
            req = new ActiveXObject("Msxml2.XMLHTTP");
          } catch(e) {
            try {
                  req = new ActiveXObject("Microsoft.XMLHTTP");
            } catch(e) {
                  req = false;
            }
        }
    }
    if(req) {
        //alert(req.readyState);
        req.onreadystatechange = processReqChange;
        req.open("GET", url, true);
        req.send(null);
    }
    else
    {
        //alert("aaa");
    }
}

function processReqChange() {
    // only if req shows "loaded"
    if (req.readyState == 4) {
        // only if "OK"
        if (req.status == 200) //wiersz 388 generujący błąd w Mozilla Firefox
        {
            // ...processing statements go here...
        } else
        {
            alert("There was a problem retrieving the XML data:\n" +
                req.statusText);
        }
    }
}